feat(forgejo): add a workflow for building binaries
This commit is contained in:
parent
834c694f85
commit
dade79b6b5
1 changed files with 76 additions and 0 deletions
76
.forgejo/workflows/build-release.yml
Normal file
76
.forgejo/workflows/build-release.yml
Normal 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.
|
Loading…
Add table
Add a link
Reference in a new issue