fix: release workflow #75
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
push: | |
branches: | |
- '*' | |
jobs: | |
test: | |
name: Test local sources | |
strategy: | |
fail-fast: false | |
max-parallel: 3 | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Test Go | |
run: go test -v --race ./... | |
test-release: | |
name: Test releases | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Try Bump-up Semantic Version | |
uses: kyoh86/git-vertag-action@v1 | |
with: | |
method: "patch" | |
- name: Run GoReleaser (dry-run) | |
uses: goreleaser/goreleaser-action@v6 | |
with: | |
args: release --clean --skip=publish --snapshot | |
test-diagnostics: | |
name: Find diagnostics | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Search diagnostics | |
uses: golangci/golangci-lint-action@v4 | |
with: | |
version: v1.55.2 | |
set-releasable-status: | |
name: 'Mark commit status "releasable"' | |
runs-on: ubuntu-latest | |
needs: | |
- test | |
- test-diagnostics | |
- test-release | |
steps: | |
- name: 'Mark commit status "releasable"' | |
run: | | |
gh api \ | |
--method POST \ | |
-H "Accept: application/vnd.github+json" \ | |
/repos/${{ github.repository }}/statuses/${{ github.sha }} \ | |
-f state='success' \ | |
-f description='Mark the commit is able to release binary' \ | |
-f context='releasable' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |