name: Release on: push: tags: - 'v*' permissions: contents: write jobs: build-releases: name: Build release artifacts runs-on: ubuntu-latest strategy: matrix: os: [linux, darwin] arch: [amd64] steps: - name: Checkout uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: '1.19.0' - name: get tag id: get_tag run: echo ::set-output name=tag::${GITHUB_REF#refs/*/v} - name: Build for arch env: GOOS: ${{ matrix.os }} GOARCH: ${{ matrix.arch }} VERSION: ${{ steps.get_tag.outputs.tag }} run: go build -ldflags "-X main.Version=$(echo $VERSION)" - name: Stash uses: actions/upload-artifact@v3 with: name: doggo-${{ matrix.os }}-${{ matrix.arch }} path: ./doggo publish: name: Publish release runs-on: ubuntu-latest needs: build-releases steps: - name: Checkout uses: actions/checkout@v3 - name: Retrieve artifacts uses: actions/download-artifact@v3 with: path: release-builds - name: Log artifact paths run: | pwd ls -R tar -czvf ./release-builds/doggo-darwin-amd64.tar.gz ./release-builds/doggo-darwin-amd64/doggo tar -czvf ./release-builds/doggo-linux-amd64.tar.gz ./release-builds/doggo-linux-amd64/doggo - name: Publish release uses: softprops/action-gh-release@v1 with: files: | ./release-builds/*.tar.gz