Files
agent-manager/.gitea/workflows/release.yml
T
bruno e6e85e2a9e
release / linux (push) Failing after 24s
release / windows (push) Canceled after 0s
release / macos (push) Canceled after 0s
ci : release_overwrite + prerequis runner documentes (pull docker.io, secret GITEA_TOKEN)
2026-08-17 10:54:36 -04:00

112 lines
3.9 KiB
YAML

# Gitea Actions : pipeline de release (issue #42).
#
# Sur chaque tag v* : construit les binaires de toutes les plateformes,
# archive + publie la release Gitea avec les artefacts. Les installateurs
# (install.sh / install.ps1) et 'am self-update' consomment ces artefacts.
#
# Labels de runners attendus : ubuntu-latest, windows-latest, macos-latest.
# Un runner manquant laisse son job en attente ; le job linux couvre la
# majorite des cas (les artefacts windows/macos peuvent aussi etre produits
# par les scripts locaux documentes dans RELEASING.md).
#
# Prérequis du runner : pouvoir tirer les images docker.io (rust:1.94-alpine
# ici, ou les images messense/rust-musl-cross:x86_64-musl / :aarch64-musl) et
# le secret GITEA_TOKEN (jeton avec droit 'write:release') positionné sur le
# dépôt. La release existante est écrasée (release_overwrite).
name: release
on:
push:
tags:
- "v*"
jobs:
linux:
runs-on: ubuntu-latest
container: rust:1.94-alpine
steps:
- uses: actions/checkout@v4
- name: Install build tools
run: apk add --no-cache build-base zip
- name: Add musl targets
run: rustup target add x86_64-unknown-linux-musl aarch64-unknown-linux-musl
- name: Build linux x86_64 (static musl)
run: cargo build --release --locked --target x86_64-unknown-linux-musl
- name: Build linux aarch64 (static musl)
run: cargo build --release --locked --target aarch64-unknown-linux-musl
- name: Stage archives
run: |
mkdir -p dist
cp target/x86_64-unknown-linux-musl/release/am dist/am-linux-x86_64
cp target/aarch64-unknown-linux-musl/release/am dist/am-linux-aarch64
cd dist
tar -czf am-linux-x86_64.tar.gz am-linux-x86_64
tar -czf am-linux-aarch64.tar.gz am-linux-aarch64
sha256sum am-*.tar.gz > checksums.txt
- name: Publish release
uses: https://gitea.com/actions/gitea-release-action@v1
with:
files: dist/am-linux-x86_64.tar.gz
dist/am-linux-aarch64.tar.gz
dist/checksums.txt
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
release_overwrite: true
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Build windows x86_64
run: cargo build --release --locked
- name: Stage archive
run: |
New-Item -ItemType Directory -Force dist | Out-Null
Compress-Archive -Path target/release/am.exe -DestinationPath dist/am-windows-x86_64.zip -Force
(Get-FileHash dist/am-windows-x86_64.zip -Algorithm SHA256).Hash.ToLower() | Out-File dist/checksums.txt
- name: Publish release
uses: https://gitea.com/actions/gitea-release-action@v1
with:
files: dist/am-windows-x86_64.zip
dist/checksums.txt
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
release_overwrite: true
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Build macos x86_64 + aarch64
run: |
rustup target add x86_64-apple-darwin aarch64-apple-darwin
cargo build --release --locked --target x86_64-apple-darwin
cargo build --release --locked --target aarch64-apple-darwin
- name: Stage archives
run: |
mkdir -p dist
cp target/x86_64-apple-darwin/release/am dist/am-macos-x86_64
cp target/aarch64-apple-darwin/release/am dist/am-macos-aarch64
cd dist
tar -czf am-macos-x86_64.tar.gz am-macos-x86_64
tar -czf am-macos-aarch64.tar.gz am-macos-aarch64
shasum -a 256 am-*.tar.gz > checksums.txt
- name: Publish release
uses: https://gitea.com/actions/gitea-release-action@v1
with:
files: dist/am-macos-x86_64.tar.gz
dist/am-macos-aarch64.tar.gz
dist/checksums.txt
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
release_overwrite: true