name: Build and Release on: push: tags: - 'v*' workflow_dispatch: jobs: build: runs-on: 9950x steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.21' - name: Install UPX run: | sudo apt update sudo apt install -y upx-ucl - name: Build normal binary run: | go build -o fps-go-brr . - name: Build compact binary run: | ./build-compact.sh - name: Get version id: version run: | if [[ $GITHUB_REF == refs/tags/* ]]; then echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT else echo "version=dev-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT fi - name: Create release directory run: | mkdir -p release cp fps-go-brr release/fps-go-brr-${{ steps.version.outputs.version }} cp fps-go-brr-compact release/fps-go-brr-compact-${{ steps.version.outputs.version }} - name: Upload normal binary uses: actions/upload-artifact@v4 with: name: fps-go-brr-normal-${{ steps.version.outputs.version }} path: release/fps-go-brr-${{ steps.version.outputs.version }} - name: Upload compact binary uses: actions/upload-artifact@v4 with: name: fps-go-brr-compact-${{ steps.version.outputs.version }} path: release/fps-go-brr-compact-${{ steps.version.outputs.version }} - name: Create Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: | release/fps-go-brr-${{ steps.version.outputs.version }} release/fps-go-brr-compact-${{ steps.version.outputs.version }} body: | ## fps-go-brr ${{ steps.version.outputs.version }} ### Downloads - `fps-go-brr-${{ steps.version.outputs.version }}` - Normal build - `fps-go-brr-compact-${{ steps.version.outputs.version }}` - Compact build (optimized with UPX compression) The compact build is smaller but may have slightly slower startup time due to decompression.