diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fa4e0f4..c3e77d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,11 +12,11 @@ env: BINARY_NAME: streamed-tui jobs: - build: + release: runs-on: ubuntu-latest steps: - - name: Checkout repository + - name: Checkout uses: actions/checkout@v4 - name: Set up Go @@ -25,42 +25,38 @@ jobs: go-version-file: go.mod cache: true - - name: Build Linux amd64 + - name: Build binaries run: | mkdir -p out - GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \ - go build -o out/${BINARY_NAME}_linux_amd64 . - - - name: Build Linux arm64 - run: | - GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \ - go build -o out/${BINARY_NAME}_linux_arm64 . - - - name: Build macOS amd64 - run: | - GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 \ - go build -o out/${BINARY_NAME}_darwin_amd64 . - - - name: Build macOS arm64 - run: | - GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 \ - go build -o out/${BINARY_NAME}_darwin_arm64 . + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o out/${BINARY_NAME}_linux_amd64 . + GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o out/${BINARY_NAME}_linux_arm64 . + GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -o out/${BINARY_NAME}_darwin_amd64 . + GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -o out/${BINARY_NAME}_darwin_arm64 . - name: Create source tarball run: | mkdir -p release tar -czf release/${BINARY_NAME}_${GITHUB_REF_NAME}_source.tar.gz . - - name: Upload release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ github.ref_name }} - name: ${{ github.ref_name }} - generate_release_notes: true - make_latest: true - files: | - out/${{ env.BINARY_NAME }}_linux_amd64 - out/${{ env.BINARY_NAME }}_linux_arm64 - out/${{ env.BINARY_NAME }}_darwin_amd64 - out/${{ env.BINARY_NAME }}_darwin_arm64 - release/${{ env.BINARY_NAME }}_${{ github.ref_name }}_source.tar.gz + - name: Install GitHub CLI + run: sudo apt-get install -y gh + + - name: Create Release + Upload Assets + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + TAG="${GITHUB_REF_NAME}" + + # Delete any previous release with the same tag (prevents untagged-XXXX) + gh release delete "$TAG" --yes --cleanup-tag || true + + # Create a clean release + gh release create "$TAG" \ + out/${BINARY_NAME}_linux_amd64 \ + out/${BINARY_NAME}_linux_arm64 \ + out/${BINARY_NAME}_darwin_amd64 \ + out/${BINARY_NAME}_darwin_arm64 \ + release/${BINARY_NAME}_${TAG}_source.tar.gz \ + --title "$TAG" \ + --notes "Release $TAG" \ + --latest