ci: add Gitea Actions build workflow
Builds Rust + .NET on push/PR. On version tags, publishes framework-dependent win-x64 zip + gatunad linux binary as Gitea release assets via REST API. Runs on hugmaster (HuggingFace Spaces runner).
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
name: build
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: hugmaster
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
run: |
|
||||||
|
git clone "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" .
|
||||||
|
git checkout "$GITHUB_SHA"
|
||||||
|
|
||||||
|
- name: Build Rust
|
||||||
|
run: |
|
||||||
|
cd gatunad
|
||||||
|
cargo build --release
|
||||||
|
|
||||||
|
- name: Build .NET
|
||||||
|
run: |
|
||||||
|
cd gatuna-win
|
||||||
|
dotnet build
|
||||||
|
|
||||||
|
- name: Publish Windows (framework-dependent)
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
run: |
|
||||||
|
cd gatuna-win
|
||||||
|
dotnet publish -c Release -r win-x64 --no-self-contained -o ../publish/win
|
||||||
|
|
||||||
|
- name: Package release assets
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
run: |
|
||||||
|
mkdir -p release
|
||||||
|
cp gatunad/target/release/gatunad release/gatunad-linux-amd64
|
||||||
|
cd publish/win && zip -r ../../release/gatuna-win.zip . && cd ../..
|
||||||
|
|
||||||
|
- name: Create Gitea release
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
run: |
|
||||||
|
TAG="${GITHUB_REF#refs/tags/}"
|
||||||
|
RESP=$(curl -sS -X POST \
|
||||||
|
-H "Authorization: token ${GITHUB_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"body\":\"Automated build for $TAG\"}" \
|
||||||
|
"${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases")
|
||||||
|
RID=$(echo "$RESP" | jq .id)
|
||||||
|
curl -sS -X POST \
|
||||||
|
-H "Authorization: token ${GITHUB_TOKEN}" \
|
||||||
|
-H "Content-Type: application/octet-stream" \
|
||||||
|
--data-binary @release/gatunad-linux-amd64 \
|
||||||
|
"${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RID}/assets?name=gatunad-linux-amd64"
|
||||||
|
curl -sS -X POST \
|
||||||
|
-H "Authorization: token ${GITHUB_TOKEN}" \
|
||||||
|
-H "Content-Type: application/octet-stream" \
|
||||||
|
--data-binary @release/gatuna-win.zip \
|
||||||
|
"${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RID}/assets?name=gatuna-win.zip"
|
||||||
Reference in New Issue
Block a user