mirror of
https://github.com/goreleaser/goreleaser-action
synced 2026-06-30 02:47:29 +00:00
feat: update for goreleaser v2.7
This commit is contained in:
@@ -80,9 +80,15 @@ describe('getRelease', () => {
|
|||||||
expect(release?.tag_name).toEqual('v0.182.1-pro');
|
expect(release?.tag_name).toEqual('v0.182.1-pro');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('returns v2.7.0 GoReleaser Pro GitHub release', async () => {
|
||||||
|
const release = await github.getRelease('goreleaser-pro', '~> v2.7');
|
||||||
|
expect(release).not.toBeNull();
|
||||||
|
expect(release?.tag_name).toEqual('v2.7.0');
|
||||||
|
});
|
||||||
|
|
||||||
it('unknown GoReleaser Pro release', async () => {
|
it('unknown GoReleaser Pro release', async () => {
|
||||||
await expect(github.getRelease('goreleaser-pro', 'foo')).rejects.toThrow(
|
await expect(github.getRelease('goreleaser-pro', 'foo')).rejects.toThrow(
|
||||||
new Error('Cannot find GoReleaser release foo-pro in https://goreleaser.com/static/releases-pro.json')
|
new Error('Cannot find GoReleaser release foo in https://goreleaser.com/static/releases-pro.json')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+12
-5
@@ -27,16 +27,14 @@ export const getReleaseTag = async (distribution: string, version: string): Prom
|
|||||||
const body = await resp.readBody();
|
const body = await resp.readBody();
|
||||||
const statusCode = resp.message.statusCode || 500;
|
const statusCode = resp.message.statusCode || 500;
|
||||||
if (statusCode >= 400) {
|
if (statusCode >= 400) {
|
||||||
throw new Error(
|
throw new Error(`Failed to get GoReleaser release ${version} from ${url} with status code ${statusCode}: ${body}`);
|
||||||
`Failed to get GoReleaser release ${version}${suffix} from ${url} with status code ${statusCode}: ${body}`
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
const releases = <Array<GitHubRelease>>JSON.parse(body);
|
const releases = <Array<GitHubRelease>>JSON.parse(body);
|
||||||
const res = releases.filter(r => r.tag_name === tag).shift();
|
const res = releases.filter(r => r.tag_name === tag).shift();
|
||||||
if (res) {
|
if (res) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
throw new Error(`Cannot find GoReleaser release ${version}${suffix} in ${url}`);
|
throw new Error(`Cannot find GoReleaser release ${version} in ${url}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const resolveVersion = async (distribution: string, version: string): Promise<string | null> => {
|
const resolveVersion = async (distribution: string, version: string): Promise<string | null> => {
|
||||||
@@ -48,7 +46,16 @@ const resolveVersion = async (distribution: string, version: string): Promise<st
|
|||||||
|
|
||||||
const cleanTags: Array<string> = allTags.map(tag => cleanTag(tag));
|
const cleanTags: Array<string> = allTags.map(tag => cleanTag(tag));
|
||||||
const cleanVersion: string = cleanTag(version);
|
const cleanVersion: string = cleanTag(version);
|
||||||
return semver.maxSatisfying(cleanTags, cleanVersion) + goreleaser.distribSuffix(distribution);
|
if (!semver.valid(cleanVersion) && !semver.validRange(cleanVersion)) {
|
||||||
|
// if the given version is invalid, return whatever we got.
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
const v = semver.maxSatisfying(cleanTags, cleanVersion);
|
||||||
|
if (semver.lt(v, '2.7.0')) {
|
||||||
|
// if its a version older than 2.7.0, append the suffix.
|
||||||
|
return v + goreleaser.distribSuffix(distribution);
|
||||||
|
}
|
||||||
|
return v;
|
||||||
};
|
};
|
||||||
|
|
||||||
interface GitHubTag {
|
interface GitHubTag {
|
||||||
|
|||||||
Reference in New Issue
Block a user