name: Build and Release on: push: branches: [ main ] pull_request: branches: [ main ] release: types: [published] jobs: build: name: Build and Test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 'stable' - name: Build and Test on Default Platform run: | go build -v ./... go test -v ./... release-binary: name: Release Go Binary runs-on: ubuntu-latest needs: build steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 'stable' - name: Build and Release run: | mkdir -p bin cd cmd go build -o ../bin/backtrace-${{ matrix.goos }}-${{ matrix.goarch }} -v . - name: Create Release id: create_release uses: actions/create-release@v1 with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} body: | Description of the release draft: false prerelease: false token: ${{ secrets.GITHUB_TOKEN }} - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./bin/backtrace-${{ matrix.goos }}-${{ matrix.goarch }} asset_name: backtrace-${{ matrix.goos }}-${{ matrix.goarch }} asset_content_type: application/octet-stream strategy: matrix: goos: [windows, freebsd, openbsd, linux, darwin] goarch: [amd64, 386] exclude: - goarch: 386 goos: darwin include: - goos: darwin goarch: arm64 - goos: linux goarch: arm goarm: 7 - goos: linux goarch: arm goarm: 6 - goos: linux goarch: arm goarm: 5 - goos: android goarch: arm64 - goos: windows goarch: arm64 - goos: windows goarch: arm goarm: 7 - goos: linux goarch: arm64 - goos: linux goarch: riscv64 - goos: linux goarch: mips64 - goos: linux goarch: mips64le - goos: linux goarch: mipsle - goos: linux goarch: mips - goos: linux goarch: mipsle gomips: softfloat - goos: linux goarch: mips gomips: softfloat - goos: linux goarch: ppc64 - goos: linux goarch: ppc64le - goos: freebsd goarch: arm64 - goos: freebsd goarch: arm goarm: 7 - goos: openbsd goarch: arm64 - goos: openbsd goarch: arm goarm: 7