feat(forgejo): add a workflow for building binaries

This commit is contained in:
aria 2025-06-14 02:31:42 +10:00
parent 834c694f85
commit dade79b6b5
Signed by: aria
SSH key fingerprint: SHA256:WqtcVnDMrv1lnUlNah5k31iywFUI/DV+5yHzCTO4Vds

View file

@ -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.