🐛 fix(ci): 修复 dev-latest 历史 release 残留导致的重复发布问题

- 将 dev release 清理逻辑改为枚举所有历史 release
- 删除全部 tag_name=dev-latest 的 draft 与 prerelease 残留
- 避免只删除单个 release 时遗留旧的 Dev Build 页面项
- 保留后续 tag ref 清理与重新发布流程
- 确保 dev 发布前仓库中只保留一个有效的 dev-latest release
This commit is contained in:
Syngnat
2026-04-09 13:34:41 +08:00
parent 60dbb8a559
commit c1877ea013

View File

@@ -602,24 +602,23 @@ jobs:
const tag = 'dev-latest';
const ref = `tags/${tag}`;
const { owner, repo } = context.repo;
const releases = await github.paginate(github.rest.repos.listReleases, {
owner,
repo,
per_page: 100,
});
try {
const release = await github.rest.repos.getReleaseByTag({
owner,
repo,
tag,
});
core.info(`Deleting existing release ${release.data.id} for tag ${tag}`);
await github.rest.repos.deleteRelease({
owner,
repo,
release_id: release.data.id,
});
} catch (error) {
if (error.status === 404) {
core.info(`No existing release found for tag ${tag}`);
} else {
throw error;
const matchedReleases = releases.filter((release) => release.tag_name === tag);
if (matchedReleases.length === 0) {
core.info(`No existing releases found for tag ${tag}`);
} else {
for (const release of matchedReleases) {
core.info(`Deleting release ${release.id} (${release.name || 'unnamed'}) for tag ${tag}`);
await github.rest.repos.deleteRelease({
owner,
repo,
release_id: release.id,
});
}
}