Compare commits

...
7 Commits
Author SHA1 Message Date
Carlos Alexandro Becker 286f3b13b1 ci: fix tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-06-04 21:59:52 -03:00
Carlos Alexandro Becker beac410314 ci: update workflow and .goreleaser.yml
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-06-04 21:56:40 -03:00
Carlos Alexandro BeckerandGitHub 18bbabc70c feat!: use "~> v2" as default (#463)
* feat!: use "~> v2" as default

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: more changes

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* gen

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* docs: update

* docs: update

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-06-04 21:50:33 -03:00
Carlos Alexandro Becker 5742e2a039 chore: re-generate
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-05-10 13:31:31 -03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
70ccc5d2da chore(deps): bump @actions/http-client from 2.2.0 to 2.2.1 (#451)
Bumps [@actions/http-client](https://github.com/actions/toolkit/tree/HEAD/packages/http-client) from 2.2.0 to 2.2.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/http-client/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/http-client)

---
updated-dependencies:
- dependency-name: "@actions/http-client"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-10 13:30:33 -03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d55bec790d chore(deps): bump semver from 7.6.0 to 7.6.2 (#462)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.0...v7.6.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-10 13:30:25 -03:00
Carlos Alexandro BeckerandGitHub f1dbd532c3 feat: lock this major version of the action to use '~> v1' as 'latest' (#461)
* feat: warn about using 'latest'

* feat: use "~> v1" as latest

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* feat: default to "~> v1" instead of "latest"

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-05-10 13:30:10 -03:00
12 changed files with 81 additions and 89 deletions
+10 -10
View File
@@ -28,7 +28,7 @@ jobs:
- windows-latest - windows-latest
version: version:
- latest - latest
- '~> 1.15' - '~> 1.26'
distribution: distribution:
- goreleaser - goreleaser
- goreleaser-pro - goreleaser-pro
@@ -48,7 +48,7 @@ jobs:
uses: ./ uses: ./
with: with:
version: ${{ matrix.version }} version: ${{ matrix.version }}
args: check --debug args: check --verbose
workdir: ./test workdir: ./test
- -
name: GoReleaser name: GoReleaser
@@ -59,7 +59,7 @@ jobs:
with: with:
distribution: ${{ matrix.distribution }} distribution: ${{ matrix.distribution }}
version: ${{ matrix.version }} version: ${{ matrix.version }}
args: release --skip-publish --clean --snapshot args: release --skip=publish --clean --snapshot
workdir: ./test workdir: ./test
install-only: install-only:
@@ -69,7 +69,7 @@ jobs:
matrix: matrix:
version: version:
- latest - latest
- '~> 0.166' - '~> 1.26'
distribution: distribution:
- goreleaser - goreleaser
- goreleaser-pro - goreleaser-pro
@@ -96,7 +96,7 @@ jobs:
name: Check name: Check
if: ${{ !(github.event_name == 'pull_request' && matrix.distribution == 'goreleaser-pro') }} if: ${{ !(github.event_name == 'pull_request' && matrix.distribution == 'goreleaser-pro') }}
run: | run: |
goreleaser check --debug goreleaser check --verbose
signing: signing:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -131,7 +131,7 @@ jobs:
uses: ./ uses: ./
with: with:
version: latest version: latest
args: -f .goreleaser-signing.yml check --debug args: -f .goreleaser-signing.yml check --verbose
workdir: ./test workdir: ./test
env: env:
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
@@ -140,7 +140,7 @@ jobs:
uses: ./ uses: ./
with: with:
version: latest version: latest
args: -f .goreleaser-signing.yml release --skip-publish --clean --snapshot args: -f .goreleaser-signing.yml release --skip=publish --clean --snapshot
workdir: ./test workdir: ./test
env: env:
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
@@ -162,13 +162,13 @@ jobs:
name: Check name: Check
uses: ./ uses: ./
with: with:
args: check --debug args: check --verbose
workdir: ./test workdir: ./test
- -
name: GoReleaser name: GoReleaser
uses: ./ uses: ./
with: with:
args: release --skip-publish --clean --snapshot args: release --skip=publish --clean --snapshot
workdir: ./test workdir: ./test
- -
name: Upload assets name: Upload assets
@@ -194,7 +194,7 @@ jobs:
name: GoReleaser name: GoReleaser
uses: ./ uses: ./
with: with:
args: release --config .goreleaser-dist.yml --skip-publish --clean --snapshot args: release --config .goreleaser-dist.yml --skip=publish --clean --snapshot
workdir: ./test workdir: ./test
- -
name: Check dist name: Check dist
+13 -13
View File
@@ -59,15 +59,15 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- -
name: Set up Go name: Set up Go
uses: actions/setup-go@v4 uses: actions/setup-go@v5
- -
name: Run GoReleaser name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
with: with:
# either 'goreleaser' (default) or 'goreleaser-pro' # either 'goreleaser' (default) or 'goreleaser-pro'
distribution: goreleaser distribution: goreleaser
# 'latest', 'nightly', or a semver # 'latest', 'nightly', or a semver
version: latest version: '~> v2'
args: release --clean args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -93,10 +93,10 @@ Or with a condition on GoReleaser step:
```yaml ```yaml
- -
name: Run GoReleaser name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
with: with:
version: latest version: '~> v2'
args: release --clean args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -119,9 +119,9 @@ the [Import GPG](https://github.com/crazy-max/ghaction-import-gpg) GitHub Action
passphrase: ${{ secrets.PASSPHRASE }} passphrase: ${{ secrets.PASSPHRASE }}
- -
name: Run GoReleaser name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
with: with:
version: latest version: '~> v2'
args: release --clean args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -144,9 +144,9 @@ purpose. You can do that with the [actions/upload-artifact](https://github.com/a
```yaml ```yaml
- -
name: Run GoReleaser name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
with: with:
version: latest version: '~> v2'
args: release --clean args: release --clean
workdir: myfolder workdir: myfolder
env: env:
@@ -165,7 +165,7 @@ purpose. You can do that with the [actions/upload-artifact](https://github.com/a
steps: steps:
- -
name: Install GoReleaser name: Install GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
with: with:
install-only: true install-only: true
- -
@@ -182,7 +182,7 @@ Following inputs can be used as `step.with` keys
| Name | Type | Default | Description | | Name | Type | Default | Description |
|------------------|---------|--------------|------------------------------------------------------------------| |------------------|---------|--------------|------------------------------------------------------------------|
| `distribution` | String | `goreleaser` | GoReleaser distribution, either `goreleaser` or `goreleaser-pro` | | `distribution` | String | `goreleaser` | GoReleaser distribution, either `goreleaser` or `goreleaser-pro` |
| `version`**¹** | String | `latest` | GoReleaser version | | `version`**¹** | String | `~> v2` | GoReleaser version |
| `args` | String | | Arguments to pass to GoReleaser | | `args` | String | | Arguments to pass to GoReleaser |
| `workdir` | String | `.` | Working directory (below repository root) | | `workdir` | String | `.` | Working directory (below repository root) |
| `install-only` | Bool | `false` | Just install GoReleaser | | `install-only` | Bool | `false` | Just install GoReleaser |
@@ -219,9 +219,9 @@ secret named `GH_PAT`, the step will look like this:
```yaml ```yaml
- -
name: Run GoReleaser name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5 uses: goreleaser/goreleaser-action@v6
with: with:
version: latest version: '~> v2'
args: release --clean args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GH_PAT }} GITHUB_TOKEN: ${{ secrets.GH_PAT }}
+24
View File
@@ -32,6 +32,30 @@ describe('getRelease', () => {
expect(release?.tag_name).not.toEqual(''); expect(release?.tag_name).not.toEqual('');
}); });
it('returns latest v1 GoReleaser Pro GitHub release', async () => {
const release = await github.getRelease('goreleaser-pro', '~> v1');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns latest v1 GoReleaser GitHub release', async () => {
const release = await github.getRelease('goreleaser', '~> v1');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns latest v2 GoReleaser Pro GitHub release', async () => {
const release = await github.getRelease('goreleaser-pro', '~> v2');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns latest v2 GoReleaser GitHub release', async () => {
const release = await github.getRelease('goreleaser', '~> v2');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns nightly GoReleaser GitHub release', async () => { it('returns nightly GoReleaser GitHub release', async () => {
const release = await github.getRelease('goreleaser', 'nightly'); const release = await github.getRelease('goreleaser', 'nightly');
expect(release).not.toBeNull(); expect(release).not.toBeNull();
+20
View File
@@ -18,6 +18,26 @@ describe('install', () => {
expect(fs.existsSync(bin)).toBe(true); expect(fs.existsSync(bin)).toBe(true);
}, 100000); }, 100000);
it('acquires latest v1 version of GoReleaser', async () => {
const bin = await goreleaser.install('goreleaser', '~> v1');
expect(fs.existsSync(bin)).toBe(true);
}, 100000);
it('acquires latest v1 version of GoReleaser Pro', async () => {
const bin = await goreleaser.install('goreleaser-pro', '~> v1');
expect(fs.existsSync(bin)).toBe(true);
}, 100000);
it('acquires latest v2 version of GoReleaser', async () => {
const bin = await goreleaser.install('goreleaser', '~> v2');
expect(fs.existsSync(bin)).toBe(true);
}, 100000);
it('acquires latest v2 version of GoReleaser Pro', async () => {
const bin = await goreleaser.install('goreleaser-pro', '~> v2');
expect(fs.existsSync(bin)).toBe(true);
}, 100000);
it('acquires latest version of GoReleaser Pro', async () => { it('acquires latest version of GoReleaser Pro', async () => {
const bin = await goreleaser.install('goreleaser-pro', 'latest'); const bin = await goreleaser.install('goreleaser-pro', 'latest');
expect(fs.existsSync(bin)).toBe(true); expect(fs.existsSync(bin)).toBe(true);
+1 -1
View File
@@ -13,7 +13,7 @@ inputs:
required: false required: false
version: version:
description: 'GoReleaser version' description: 'GoReleaser version'
default: 'latest' default: '~> v2'
required: false required: false
args: args:
description: 'Arguments to pass to GoReleaser' description: 'Arguments to pass to GoReleaser'
Generated Vendored
+3 -3
View File
File diff suppressed because one or more lines are too long
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
Generated Vendored
-38
View File
@@ -258,25 +258,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
lru-cache
ISC
The ISC License
Copyright (c) Isaac Z. Schlueter and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
require-directory require-directory
MIT MIT
The MIT License (MIT) The MIT License (MIT)
@@ -441,25 +422,6 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE. THIS SOFTWARE.
yallist
ISC
The ISC License
Copyright (c) Isaac Z. Schlueter and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
yargs yargs
MIT MIT
MIT License MIT License
+1 -1
View File
@@ -31,7 +31,7 @@
"@actions/http-client": "^2.2.1", "@actions/http-client": "^2.2.1",
"@actions/tool-cache": "^2.0.1", "@actions/tool-cache": "^2.0.1",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"semver": "^7.6.0", "semver": "^7.6.2",
"yargs": "^17.7.2" "yargs": "^17.7.2"
}, },
"devDependencies": { "devDependencies": {
+1 -1
View File
@@ -15,7 +15,7 @@ export interface Inputs {
export async function getInputs(): Promise<Inputs> { export async function getInputs(): Promise<Inputs> {
return { return {
distribution: core.getInput('distribution') || 'goreleaser', distribution: core.getInput('distribution') || 'goreleaser',
version: core.getInput('version') || 'latest', version: core.getInput('version') || '~> v2',
args: core.getInput('args'), args: core.getInput('args'),
workdir: core.getInput('workdir') || '.', workdir: core.getInput('workdir') || '.',
installOnly: core.getBooleanInput('install-only') installOnly: core.getBooleanInput('install-only')
+2 -14
View File
@@ -9,7 +9,8 @@ export interface GitHubRelease {
export const getRelease = async (distribution: string, version: string): Promise<GitHubRelease> => { export const getRelease = async (distribution: string, version: string): Promise<GitHubRelease> => {
if (version === 'latest') { if (version === 'latest') {
return getLatestRelease(distribution); core.warning("You are using 'latest' as default version. Will lock to '~> v2'.");
return getReleaseTag(distribution, '~> v2');
} }
return getReleaseTag(distribution, version); return getReleaseTag(distribution, version);
}; };
@@ -38,19 +39,6 @@ export const getReleaseTag = async (distribution: string, version: string): Prom
throw new Error(`Cannot find GoReleaser release ${version}${suffix} in ${url}`); throw new Error(`Cannot find GoReleaser release ${version}${suffix} in ${url}`);
}; };
export const getLatestRelease = async (distribution: string): Promise<GitHubRelease> => {
const suffix: string = goreleaser.distribSuffix(distribution);
const url = `https://goreleaser.com/static/latest${suffix}`;
const http: httpm.HttpClient = new httpm.HttpClient('goreleaser-action');
const resp: httpm.HttpClientResponse = await http.get(url);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get GoReleaser release latest from ${url} with status code ${statusCode}: ${body}`);
}
return {tag_name: body};
};
const resolveVersion = async (distribution: string, version: string): Promise<string | null> => { const resolveVersion = async (distribution: string, version: string): Promise<string | null> => {
const allTags: Array<string> | null = await getAllTags(distribution); const allTags: Array<string> | null = await getAllTags(distribution);
if (!allTags) { if (!allTags) {
+5 -7
View File
@@ -3105,7 +3105,7 @@ __metadata:
jest: ^29.6.4 jest: ^29.6.4
js-yaml: ^4.1.0 js-yaml: ^4.1.0
prettier: ^3.0.3 prettier: ^3.0.3
semver: ^7.6.0 semver: ^7.6.2
tmp: ^0.2.1 tmp: ^0.2.1
ts-jest: ^29.1.1 ts-jest: ^29.1.1
ts-node: ^10.9.1 ts-node: ^10.9.1
@@ -4895,14 +4895,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"semver@npm:^7.6.0": "semver@npm:^7.6.2":
version: 7.6.0 version: 7.6.2
resolution: "semver@npm:7.6.0" resolution: "semver@npm:7.6.2"
dependencies:
lru-cache: ^6.0.0
bin: bin:
semver: bin/semver.js semver: bin/semver.js
checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d
languageName: node languageName: node
linkType: hard linkType: hard