Skip to content

Release

Release #48

Workflow file for this run

name: Release
permissions:
contents: write
on:
release:
types: [created]
jobs:
release-cli:
name: Release CLI binary
runs-on: ubuntu-latest
strategy:
matrix:
# build and publish in parallel: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64
goos: [linux, darwin]
goarch: [amd64, arm64]
steps:
- uses: actions/checkout@v4
- name: Run tests
run: go test -v -p=1 -timeout=0 ./...
- name: Verify version subcommand for release tag
run: |
go build -ldflags="-s -w -X main.version=${{ github.event.release.tag_name }}" -o bin/mxlint ./.
test "$(./bin/mxlint version)" = "${{ github.event.release.tag_name }}"
- uses: wangyoucao577/go-release-action@v1
with:
github_token: ${{ secrets.PAT }}
goos: ${{ matrix.goos }}
goarch: ${{ matrix.goarch }}
project_path: "./"
binary_name: "mxlint"
ldflags: "-s -w -X main.version=${{ github.event.release.tag_name }}"
compress_assets: OFF
release-cli-windows:
name: Release CLI binary (Windows)
runs-on: windows-latest
strategy:
matrix:
goarch: [amd64, arm64]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run tests
run: go test -v -p=1 -timeout=0 ./...
- name: Build Windows binary
shell: bash
run: |
asset="mxlint-${{ github.event.release.tag_name }}-windows-${{ matrix.goarch }}.exe"
GOOS=windows GOARCH=${{ matrix.goarch }} go build \
-ldflags="-s -w -X main.version=${{ github.event.release.tag_name }}" \
-o "$asset" .
echo "asset=$asset" >> "$GITHUB_ENV"
- name: Upload release asset
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.PAT }}
files: ${{ env.asset }}