--- name: releases on: push: tags: - "v*" jobs: build: runs-on: ubuntu-latest strategy: matrix: # build targets include: - goos: linux goarch: amd64 - goos: linux goarch: '386' - goos: darwin goarch: amd64 steps: - name: Checkout source code uses: actions/checkout@v2.3.4 with: lfs: true fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.18 - name: Build for Linux-amd64 env: GOOS: ${{ matrix.goos }} GOARCH: ${{ matrix.goarch }} run: | v=$(echo ${GITHUB_REF} | awk -F/ '{print substr($3,2,10);}') go build -x -v -mod=vendor -ldflags "-X main.version=${v} -w -s" -o "tty-share_${GOOS}-${GOARCH}" - name: Upload to artifact storage uses: actions/upload-artifact@v2 with: path: tty-share_${{ matrix.goos }}-${{ matrix.goarch }} if-no-files-found: error # only meant for sharing with the publish job retention-days: 1 publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v2 with: path: tty-share_* - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" prerelease: false files: | tty-share_* id: "automatic_releases"