This repository has been archived on 2026-05-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
de-socket-espace-room-server/.gitea/workflows/build.yml
KeshavAnandCode 20313de5dc
Some checks failed
build-service / Build aarch64-unknown-linux-gnu (push) Failing after 54s
build-service / Gitea Release (push) Has been cancelled
build-service / Build x86_64-unknown-linux-gnu (push) Has been cancelled
added release
2026-05-14 20:06:11 -05:00

80 lines
2.1 KiB
YAML

name: build-service
on:
push:
branches: [main]
tags: ["v*"]
jobs:
build:
name: Build ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- target: x86_64-unknown-linux-gnu
use-cross: false
- target: aarch64-unknown-linux-gnu
use-cross: true
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install cross
if: matrix.use-cross == true
uses: taiki-e/install-action@v2
with:
tool: cross
- name: Build binary
env:
CROSS_CONTAINER_IN_CONTAINER: true
run: |
if [ "${{ matrix.use-cross }}" == "true" ]; then
cross build --release --target ${{ matrix.target }}
else
cargo build --release --target ${{ matrix.target }}
fi
# Prepare binary for upload
mkdir -p staging
cp target/${{ matrix.target }}/release/escape_room_server staging/escape_room_server-${{ matrix.target }}
- name: Upload artifacts (Internal)
uses: actions/upload-artifact@v4
with:
name: binary-${{ matrix.target }}
path: staging/escape_room_server-${{ matrix.target }}
release:
name: Gitea Release
needs: build
# CRITICAL: This ensures the release job ONLY runs when you push a tag
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: release-bins
pattern: binary-*
merge-multiple: true
- name: Create Gitea Release
# Using a Gitea-compatible release action
uses: https://github.com/softprops/action-gh-release@v2
with:
# Gitea uses the same 'GITHUB_TOKEN' secret name by default
token: ${{ secrets.GITHUB_TOKEN }}
files: release-bins/*
draft: false
prerelease: false
generate_release_notes: true