Skip to content

Commit 842e7cc

Browse files
committed
feat: update for goreleaser v2.7
1 parent d28c982 commit 842e7cc

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

__tests__/github.test.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,15 @@ describe('getRelease', () => {
8080
expect(release?.tag_name).toEqual('v0.182.1-pro');
8181
});
8282

83+
it('returns v2.7.0 GoReleaser Pro GitHub release', async () => {
84+
const release = await github.getRelease('goreleaser-pro', '~> v2.7');
85+
expect(release).not.toBeNull();
86+
expect(release?.tag_name).toEqual('v2.7.0');
87+
});
88+
8389
it('unknown GoReleaser Pro release', async () => {
8490
await expect(github.getRelease('goreleaser-pro', 'foo')).rejects.toThrow(
85-
new Error('Cannot find GoReleaser release foo-pro in https://goreleaser.com/static/releases-pro.json')
91+
new Error('Cannot find GoReleaser release foo in https://goreleaser.com/static/releases-pro.json')
8692
);
8793
});
8894
});

dist/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/github.ts

+12-5
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,14 @@ export const getReleaseTag = async (distribution: string, version: string): Prom
2727
const body = await resp.readBody();
2828
const statusCode = resp.message.statusCode || 500;
2929
if (statusCode >= 400) {
30-
throw new Error(
31-
`Failed to get GoReleaser release ${version}${suffix} from ${url} with status code ${statusCode}: ${body}`
32-
);
30+
throw new Error(`Failed to get GoReleaser release ${version} from ${url} with status code ${statusCode}: ${body}`);
3331
}
3432
const releases = <Array<GitHubRelease>>JSON.parse(body);
3533
const res = releases.filter(r => r.tag_name === tag).shift();
3634
if (res) {
3735
return res;
3836
}
39-
throw new Error(`Cannot find GoReleaser release ${version}${suffix} in ${url}`);
37+
throw new Error(`Cannot find GoReleaser release ${version} in ${url}`);
4038
};
4139

4240
const resolveVersion = async (distribution: string, version: string): Promise<string | null> => {
@@ -48,7 +46,16 @@ const resolveVersion = async (distribution: string, version: string): Promise<st
4846

4947
const cleanTags: Array<string> = allTags.map(tag => cleanTag(tag));
5048
const cleanVersion: string = cleanTag(version);
51-
return semver.maxSatisfying(cleanTags, cleanVersion) + goreleaser.distribSuffix(distribution);
49+
if (!semver.valid(cleanVersion) && !semver.validRange(cleanVersion)) {
50+
// if the given version is invalid, return whatever we got.
51+
return version;
52+
}
53+
const v = semver.maxSatisfying(cleanTags, cleanVersion);
54+
if (semver.lt(v, '2.7.0')) {
55+
// if its a version older than 2.7.0, append the suffix.
56+
return v + goreleaser.distribSuffix(distribution);
57+
}
58+
return v;
5259
};
5360

5461
interface GitHubTag {

0 commit comments

Comments
 (0)