name: Release on: push: tags: - "v*" permissions: contents: write jobs: build: strategy: matrix: include: - os: macos-latest goos: darwin goarch: amd64 - os: macos-latest goos: darwin goarch: arm64 - os: ubuntu-latest goos: linux goarch: amd64 - os: ubuntu-latest goos: linux goarch: arm64 - os: windows-latest goos: windows goarch: amd64 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.26" - name: Build shell: bash run: | mkdir -p dist binary="dist/termtap-${{ matrix.goos }}-${{ matrix.goarch }}" if [ "${{ matrix.goos }}" = "windows" ]; then binary="${binary}.exe" fi GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go build -o "$binary" ./cmd/tap/main.go - name: Upload artifact uses: actions/upload-artifact@v4 with: name: termtap-${{ matrix.goos }}-${{ matrix.goarch }} path: dist/* release: needs: build runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: path: dist - uses: softprops/action-gh-release@v2 with: files: dist/**/*