Sequential uploads to GitHub should work now

#13
This commit is contained in:
Kir_Antipov 2022-07-05 16:58:56 +03:00
parent 46fa04e65a
commit f491e136d1

View file

@ -34,10 +34,22 @@ export default class GitHubPublisher extends ModPublisher {
protected async publishMod(_id: string, token: string, name: string, version: string, channel: string, _loaders: string[], _gameVersions: string[], _java: string[], changelog: string, files: File[], _dependencies: Dependency[], options: Record<string, unknown>): Promise<void> { protected async publishMod(_id: string, token: string, name: string, version: string, channel: string, _loaders: string[], _gameVersions: string[], _java: string[], changelog: string, files: File[], _dependencies: Dependency[], options: Record<string, unknown>): Promise<void> {
const repo = github.context.repo; const repo = github.context.repo;
const octokit = github.getOctokit(token); const octokit = github.getOctokit(token);
const environmentTag = getEnvironmentTag();
let tag = mapStringInput(options.tag, null); let tag = mapStringInput(options.tag, null);
let releaseId = tag ? await this.getReleaseIdByTag(tag, token) : github.context.payload.release?.id; let releaseId = 0;
if (tag) {
releaseId = await this.getReleaseIdByTag(tag, token);
} else if (github.context.payload.release?.id) {
releaseId = github.context.payload.release?.id;
} else if (environmentTag) {
releaseId = await this.getReleaseIdByTag(environmentTag, token);
} else if (version) {
releaseId = await this.getReleaseIdByTag(version, token);
}
const generated = !releaseId; const generated = !releaseId;
if (!releaseId && (tag ??= getEnvironmentTag() ?? version)) { if (generated && (tag ??= environmentTag ?? version)) {
const generateChangelog = mapBooleanInput(options.generateChangelog, !changelog); const generateChangelog = mapBooleanInput(options.generateChangelog, !changelog);
const draft = mapBooleanInput(options.draft, false); const draft = mapBooleanInput(options.draft, false);
const prerelease = mapBooleanInput(options.prerelease, channel !== VersionType.Release); const prerelease = mapBooleanInput(options.prerelease, channel !== VersionType.Release);
@ -46,7 +58,7 @@ export default class GitHubPublisher extends ModPublisher {
releaseId = await this.createRelease(tag, name, changelog, generateChangelog, draft, prerelease, commitish, discussion, token); releaseId = await this.createRelease(tag, name, changelog, generateChangelog, draft, prerelease, commitish, discussion, token);
} }
if (!releaseId) { if (!releaseId) {
throw new Error(`Cannot find or create release #${options.tag || releaseId}`); throw new Error(`Cannot find or create release ${tag || `#${releaseId}`}`);
} }
const existingAssets = generated ? [] : (await octokit.rest.repos.listReleaseAssets({ ...repo, release_id: releaseId })).data; const existingAssets = generated ? [] : (await octokit.rest.repos.listReleaseAssets({ ...repo, release_id: releaseId })).data;