add golangci-lint workflow #424
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: Release F2 | |
env: | |
dev_tag: nightly | |
go_version: 1.23 | |
REPO_OWNER: ${{ vars.REPO_OWNER }} | |
REPO_WEBSITE: ${{ vars.REPO_WEBSITE }} | |
REPO_DESCRIPTION: ${{ vars.REPO_DESCRIPTION }} | |
REPO_MAINTAINER: ${{ vars.REPO_MAINTAINER }} | |
REPO_AUTHOR_NAME: ${{ vars.REPO_AUTHOR_NAME }} | |
REPO_AUTHOR_EMAIL: ${{ vars.REPO_AUTHOR_EMAIL }} | |
REPO_BINARY_NAME: ${{ vars.REPO_BINARY_NAME }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
pull_request: | |
jobs: | |
create_tag_master: | |
name: Create nightly tag for master branch | |
runs-on: ubuntu-latest | |
if: github.ref_type == 'branch' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Update nightly tag | |
run: | | |
git tag -d ${{ env.dev_tag }} || true | |
git push origin :refs/tags/${{ env.dev_tag }} || true | |
git tag ${{ env.dev_tag }} | |
git push origin ${{ env.dev_tag }} | |
publish_nightly: | |
needs: create_tag_master | |
name: Release nightly version | |
runs-on: ubuntu-latest | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go ${{ env.go_version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.go_version }} | |
- name: Delete existing nightly release | |
run: | | |
gh release delete nightly --yes || true | |
- name: Create nightly release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: refs/tags/${{ env.dev_tag }} | |
name: Development build (master) | |
body: | | |
This build is directly sourced from the `master` branch in active development. As such, it may include experimental features and potential bugs. | |
draft: false | |
prerelease: true | |
- name: Build assets with Goreleaser | |
uses: goreleaser/goreleaser-action@v6 | |
with: | |
version: "~> v2" | |
args: release --clean --snapshot | |
- name: Upload assets to nightly release | |
run: gh release upload ${{ env.dev_tag }} dist/{*.tar.gz,*.zip,*.tar.zst,*.deb,*.rpm,*.apk,checksums.txt} --clobber | |
run_tests: | |
runs-on: ${{ matrix.os }} | |
if: github.ref_type == 'tag' | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.go_version }} | |
- name: Run tests | |
run: go test ./... -race | |
publish_stable: | |
name: Release stable version | |
runs-on: ubuntu-latest | |
needs: run_tests | |
if: github.ref_type == 'tag' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go ${{ env.go_version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.go_version }} | |
- name: Create stable release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: ${{ github.ref }} | |
name: ${{ github.ref }} | |
body: ${{ env.CHANGELOG }} | |
draft: false | |
prerelease: false | |
- name: Run Goreleaser | |
uses: goreleaser/goreleaser-action@v6 | |
with: | |
version: "~> v2" | |
args: release --clean | |
env: | |
GORELEASER_GITHUB_TOKEN: ${{ secrets.SCOOP_BUCKET_GITHUB_TOKEN }} | |
FURY_TOKEN: ${{ secrets.FURY_PUSH_TOKEN }} | |
FURY_USERNAME: ${{ secrets.FURY_USERNAME }} |