name: release # På varje push till master/main: kör tester, bygg release-binärer för # linux arm64 (nativt på Pi5-runnern) + linux x64 (cross) och lägg dem # på en rullande "latest"-release på släppsidan i Gitea. on: push: branches: [master, main] workflow_dispatch: {} jobs: build-release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Installera Rust + cross-toolchain run: | set -e sudo apt-get update -qq sudo apt-get install -y -qq gcc-x86-64-linux-gnu jq curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ | sh -s -- -y --profile minimal --default-toolchain stable . "$HOME/.cargo/env" rustup target add x86_64-unknown-linux-gnu - name: Testa + bygg (arm64 nativt + x64 cross) run: | set -e . "$HOME/.cargo/env" # Snäll mot Pi5:n — låg prio och max 2 parallella jobb export CARGO_BUILD_JOBS=2 nice -n 10 cargo test --release nice -n 10 cargo build --release export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc nice -n 10 cargo build --release --target x86_64-unknown-linux-gnu mkdir -p build cp target/release/tui-fm build/tui-fm-linux-arm64 cp target/x86_64-unknown-linux-gnu/release/tui-fm build/tui-fm-linux-x64 (cd build && sha256sum tui-fm-linux-* > checksums.txt && ls -la) - name: Skapa/uppdatera latest-release + ladda upp binärer env: API: http://gitea-d:3000/api/v1 REPO: ${{ github.repository }} TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -e TAG="latest" BASE="https://gitea.brasse-pc.eu/$REPO/releases/download/$TAG" BODY=$(cat < HTTP %{http_code}\n" done