Simplify Forgejo CI to Linux-only build
Some checks failed
Release / build-and-release (push) Has been cancelled

Remove Windows job (no Windows runner available) and merge
build + release into a single job.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
le king fu 2026-02-26 18:38:29 -05:00
parent 640caf2617
commit 6771efd0b0

View file

@ -6,7 +6,7 @@ on:
- 'v*' - 'v*'
jobs: jobs:
build-linux: build-and-release:
runs-on: ubuntu runs-on: ubuntu
steps: steps:
- name: Checkout - name: Checkout
@ -40,76 +40,18 @@ jobs:
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: npx tauri build run: npx tauri build
- name: Upload Linux artifacts - name: Collect release files
uses: actions/upload-artifact@v4 run: |
with: mkdir -p release-assets
name: linux-artifacts cp src-tauri/target/release/bundle/deb/*.deb release-assets/ 2>/dev/null || true
path: | cp src-tauri/target/release/bundle/appimage/*.AppImage release-assets/ 2>/dev/null || true
src-tauri/target/release/bundle/deb/*.deb cp src-tauri/target/release/bundle/appimage/*.AppImage.tar.gz release-assets/ 2>/dev/null || true
src-tauri/target/release/bundle/appimage/*.AppImage cp src-tauri/target/release/bundle/appimage/*.AppImage.tar.gz.sig release-assets/ 2>/dev/null || true
src-tauri/target/release/bundle/appimage/*.AppImage.tar.gz cp src-tauri/target/release/bundle/rpm/*.rpm release-assets/ 2>/dev/null || true
src-tauri/target/release/bundle/appimage/*.AppImage.tar.gz.sig ls -la release-assets/
build-windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: npm
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust dependencies
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install frontend dependencies
run: npm ci
- name: Build Tauri
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: npx tauri build
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: windows-artifacts
path: |
src-tauri/target/release/bundle/nsis/*.exe
src-tauri/target/release/bundle/nsis/*.nsis.zip
src-tauri/target/release/bundle/nsis/*.nsis.zip.sig
release:
needs: [build-linux, build-windows]
runs-on: ubuntu
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Linux artifacts
uses: actions/download-artifact@v4
with:
name: linux-artifacts
path: artifacts/linux
- name: Download Windows artifacts
uses: actions/download-artifact@v4
with:
name: windows-artifacts
path: artifacts/windows
- name: Extract changelog - name: Extract changelog
id: changelog id: changelog
shell: bash
run: | run: |
TAG="${GITHUB_REF_NAME#v}" TAG="${GITHUB_REF_NAME#v}"
NOTES=$(sed -n "/^## \[${TAG}\]/,/^## /{/^## \[${TAG}\]/d;/^## /d;p}" CHANGELOG.md) NOTES=$(sed -n "/^## \[${TAG}\]/,/^## /{/^## \[${TAG}\]/d;/^## /d;p}" CHANGELOG.md)
@ -123,37 +65,15 @@ jobs:
echo "CHANGELOG_EOF" echo "CHANGELOG_EOF"
} >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
- name: Collect release files
id: files
shell: bash
run: |
mkdir -p release-assets
# Flatten nested artifact directories into release-assets/
find artifacts -type f | while read f; do
cp "$f" "release-assets/$(basename "$f")"
done
ls -la release-assets/
- name: Generate latest.json - name: Generate latest.json
shell: bash
run: | run: |
TAG="${GITHUB_REF_NAME}" TAG="${GITHUB_REF_NAME}"
VERSION="${TAG}"
PUB_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") PUB_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
BASE_URL="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/download/${TAG}" BASE_URL="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/download/${TAG}"
# Read signatures
WINDOWS_SIG=""
LINUX_SIG="" LINUX_SIG=""
NSIS_ZIP=""
APPIMAGE_TAR="" APPIMAGE_TAR=""
for f in release-assets/*.nsis.zip.sig; do
[ -f "$f" ] && WINDOWS_SIG=$(cat "$f")
done
for f in release-assets/*.nsis.zip; do
[ -f "$f" ] && NSIS_ZIP=$(basename "$f")
done
for f in release-assets/*.AppImage.tar.gz.sig; do for f in release-assets/*.AppImage.tar.gz.sig; do
[ -f "$f" ] && LINUX_SIG=$(cat "$f") [ -f "$f" ] && LINUX_SIG=$(cat "$f")
done done
@ -161,14 +81,7 @@ jobs:
[ -f "$f" ] && APPIMAGE_TAR=$(basename "$f") [ -f "$f" ] && APPIMAGE_TAR=$(basename "$f")
done done
# Build latest.json
PLATFORMS="{}" PLATFORMS="{}"
if [ -n "$WINDOWS_SIG" ] && [ -n "$NSIS_ZIP" ]; then
PLATFORMS=$(echo "$PLATFORMS" | jq \
--arg sig "$WINDOWS_SIG" \
--arg url "${BASE_URL}/${NSIS_ZIP}" \
'. + {"windows-x86_64": {"signature": $sig, "url": $url}}')
fi
if [ -n "$LINUX_SIG" ] && [ -n "$APPIMAGE_TAR" ]; then if [ -n "$LINUX_SIG" ] && [ -n "$APPIMAGE_TAR" ]; then
PLATFORMS=$(echo "$PLATFORMS" | jq \ PLATFORMS=$(echo "$PLATFORMS" | jq \
--arg sig "$LINUX_SIG" \ --arg sig "$LINUX_SIG" \
@ -176,14 +89,9 @@ jobs:
'. + {"linux-x86_64": {"signature": $sig, "url": $url}}') '. + {"linux-x86_64": {"signature": $sig, "url": $url}}')
fi fi
NOTES=$(cat <<'NOTES_EOF'
${{ steps.changelog.outputs.notes }}
NOTES_EOF
)
jq -n \ jq -n \
--arg version "$VERSION" \ --arg version "$TAG" \
--arg notes "$NOTES" \ --arg notes "${{ steps.changelog.outputs.notes }}" \
--arg pub_date "$PUB_DATE" \ --arg pub_date "$PUB_DATE" \
--argjson platforms "$PLATFORMS" \ --argjson platforms "$PLATFORMS" \
'{version: $version, notes: $notes, pub_date: $pub_date, platforms: $platforms}' \ '{version: $version, notes: $notes, pub_date: $pub_date, platforms: $platforms}' \
@ -193,7 +101,6 @@ jobs:
cat release-assets/latest.json cat release-assets/latest.json
- name: Create release and upload assets - name: Create release and upload assets
shell: bash
env: env:
FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }} FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
@ -208,13 +115,6 @@ jobs:
## Installation ## Installation
**Windows** : Téléchargez le fichier `.exe` ci-dessous et lancez l'installation.
> **Note :** Windows SmartScreen peut afficher un avertissement car l'application n'est pas signée.
> Cliquez sur **« Informations complémentaires »** puis **« Exécuter quand même »**.
> **Important :** Si vous aviez installé une version précédente via le fichier `.msi`, veuillez d'abord la désinstaller (Paramètres Windows > Applications) avant d'installer cette version.
**Linux** : Téléchargez le fichier `.deb` ou `.AppImage` ci-dessous. **Linux** : Téléchargez le fichier `.deb` ou `.AppImage` ci-dessous.
BODY_EOF BODY_EOF
) )