diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml new file mode 100644 index 0000000..ad1fb78 --- /dev/null +++ b/.forgejo/workflows/build-release.yml @@ -0,0 +1,76 @@ +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. \ No newline at end of file