# .github/workflows/release.yml name: Build & Release Go Binary on: push: branches: - main permissions: contents: write packages: write jobs: release: runs-on: ubuntu-latest strategy: matrix: goos: [linux, windows, darwin] goarch: ['386', amd64, arm64] exclude: - goos: darwin goarch: '386' - goos: windows goarch: arm64 steps: - uses: actions/checkout@v4 - name: Set version tag id: version run: | VERSION="v$(date +'%Y%m%d%H%M%S')" echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Build Go Binary uses: wangyoucao577/go-release-action@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} goos: ${{ matrix.goos }} goarch: ${{ matrix.goarch }} goversion: "https://dl.google.com/go/go1.24.8.linux-amd64.tar.gz" project_path: "./" binary_name: "pinata" extra_files: LICENSE README.md - name: Create Git Tag run: | git tag ${{ env.VERSION }} git push origin ${{ env.VERSION }} - name: Create GitHub Release uses: ncipollo/release-action@v1 with: tag: ${{ env.VERSION }} token: ${{ secrets.GITHUB_TOKEN }}