ci(desktop): retire le job Windows du packaging, aucun runner n'est enregistré
Le job était conditionné par la variable de dépôt ENABLE_WINDOWS_BUILD, ce qui ne suffit pas : sans runner labellisé `windows-latest`, la release desktop tombait en erreur au lieu de sauter le job. Il est retiré, ainsi que le téléchargement de son artefact et ses assets dans le canal flottant desktop-latest. Le job complet reste dans l'historique (tag desktop-v0.2.3) et docs/CI_RUNNERS.md décrit ce qu'il faut restaurer une fois un runner Windows enregistré. Le repli reste un `npm run dist:win` manuel attaché à la release.
This commit is contained in:
@@ -2,10 +2,10 @@
|
||||
# daemon qui écoute v*, et du VSIX qui écoute vscode-v*).
|
||||
#
|
||||
# Linux (AppImage + deb) : toujours automatisé.
|
||||
# Windows (NSIS + portable) : job dédié, ACTIVÉ par la variable de dépôt ENABLE_WINDOWS_BUILD=true une
|
||||
# fois qu'un runner labellisé `windows-latest` est enregistré sur le forge. Procédure complète dans
|
||||
# docs/CI_RUNNERS.md. Tant que la variable est absente, le job est sauté et la release Linux part
|
||||
# normalement ; le repli reste un build manuel attaché à la release.
|
||||
# Windows (NSIS + portable) : job RETIRÉ tant qu'aucun runner `windows-latest` n'est enregistré sur le
|
||||
# forge. Un job conditionné par une variable de dépôt ne suffisait pas : la release entière tombait
|
||||
# en erreur. Le repli est un build manuel attaché à la release. Pour le rétablir : enregistrer un
|
||||
# runner (docs/CI_RUNNERS.md) puis restaurer le job depuis l'historique git (tag desktop-v0.2.3).
|
||||
# Le cross-build depuis Linux est IMPOSSIBLE : node-pty ne copie conpty.dll / OpenConsole.exe que si
|
||||
# l'hôte de build est Windows, et son tarball ne contient que les prebuilds linux.
|
||||
# macOS (dmg + zip) : non automatisé (aucun runner) ; build manuel documenté dans le README desktop.
|
||||
@@ -86,65 +86,12 @@ jobs:
|
||||
packages/desktop/release/latest-linux.yml \
|
||||
packages/desktop/release/SHA256SUMS-linux.txt
|
||||
|
||||
windows:
|
||||
name: Build Windows (NSIS + portable)
|
||||
# Activé par la variable de dépôt ENABLE_WINDOWS_BUILD (voir docs/CI_RUNNERS.md). Sans runner
|
||||
# Windows enregistré, un job non conditionné resterait en attente indéfiniment et bloquerait la
|
||||
# release entière.
|
||||
if: vars.ENABLE_WINDOWS_BUILD == 'true'
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
- name: Verify tag matches desktop version
|
||||
if: github.event_name == 'push'
|
||||
shell: bash
|
||||
run: |
|
||||
pkg=$(node -p "require('./packages/desktop/package.json').version")
|
||||
tag="${GITHUB_REF_NAME#desktop-v}"
|
||||
if [ "$pkg" != "$tag" ]; then
|
||||
echo "ERREUR: tag '$tag' != version desktop '$pkg'"
|
||||
exit 1
|
||||
fi
|
||||
echo "OK: tag $tag == version $pkg"
|
||||
- run: npm ci
|
||||
- name: Install desktop deps
|
||||
shell: bash
|
||||
run: cd packages/desktop && npm ci
|
||||
# `dist:win` sur hôte Windows : c'est le SEUL chemin qui produit un node-pty utilisable (ConPTY,
|
||||
# conpty.dll + OpenConsole.exe copiés par le post-install de node-pty).
|
||||
- name: Build installers
|
||||
shell: bash
|
||||
run: cd packages/desktop && npm run dist:win
|
||||
- name: Compute checksums
|
||||
shell: bash
|
||||
run: |
|
||||
cd packages/desktop/release
|
||||
sha256sum *.exe > SHA256SUMS-windows.txt
|
||||
cat SHA256SUMS-windows.txt
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: desktop-windows
|
||||
path: |
|
||||
packages/desktop/release/*.exe
|
||||
packages/desktop/release/*.blockmap
|
||||
packages/desktop/release/latest.yml
|
||||
packages/desktop/release/SHA256SUMS-windows.txt
|
||||
# Pas de continue-on-error : cf. la note du job Linux.
|
||||
- name: Attach installers to the tag release
|
||||
if: github.event_name == 'push'
|
||||
shell: bash
|
||||
env:
|
||||
RELEASE_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
run: |
|
||||
version=$(node -p "require('./packages/desktop/package.json').version")
|
||||
bash .gitea/scripts/attach-release-assets.sh "${GITHUB_REF_NAME}" "Arboretum Desktop ${version}" \
|
||||
packages/desktop/release/*.exe \
|
||||
packages/desktop/release/*.blockmap \
|
||||
packages/desktop/release/latest.yml \
|
||||
packages/desktop/release/SHA256SUMS-windows.txt
|
||||
# Le job Windows (NSIS + portable) est RETIRÉ pour le moment : aucun runner Windows n'est
|
||||
# enregistré sur ce Gitea, et `runs-on: windows-latest` fait échouer la release entière au lieu
|
||||
# d'être simplement ignoré. Le job complet reste dans l'historique git (dernier état : tag
|
||||
# desktop-v0.2.3) et la procédure d'enregistrement d'un runner est dans docs/CI_RUNNERS.md : le
|
||||
# rétablir revient à restaurer ce job, puis à réactiver le téléchargement de son artefact et ses
|
||||
# assets dans le canal flottant ci-dessous.
|
||||
|
||||
# Canal d'auto-update : electron-updater interroge une URL FIXE
|
||||
# (.../releases/download/desktop-latest, cf. electron-builder.yml). Ce tag flottant doit donc exister
|
||||
@@ -164,13 +111,6 @@ jobs:
|
||||
with:
|
||||
name: desktop-linux
|
||||
path: dl
|
||||
# Les artefacts Windows n'existent que si le job correspondant a tourné : téléchargement toléré
|
||||
# en échec pour ne jamais bloquer la publication du canal Linux.
|
||||
- uses: actions/download-artifact@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
name: desktop-windows
|
||||
path: dl
|
||||
# On repart d'une release flottante VIERGE : sinon les assets de la version précédente y
|
||||
# restent (mêmes noms de fichiers uniquement remplacés, un ancien numéro de version subsisterait).
|
||||
# La recréation est faite par le script suivant, via l'API (Gitea crée le tag au besoin).
|
||||
@@ -196,4 +136,4 @@ jobs:
|
||||
run: |
|
||||
version=$(node -p "require('./packages/desktop/package.json').version")
|
||||
bash .gitea/scripts/attach-release-assets.sh desktop-latest "Arboretum Desktop (latest, ${version})" \
|
||||
dl/*.AppImage dl/*.deb dl/*.exe dl/*.blockmap dl/latest-linux.yml dl/latest.yml dl/SHA256SUMS-*.txt
|
||||
dl/*.AppImage dl/*.deb dl/*.blockmap dl/latest-linux.yml dl/SHA256SUMS-*.txt
|
||||
|
||||
+8
-4
@@ -22,12 +22,16 @@ Un build produit sous Wine serait donc installable mais inutilisable. C'est pour
|
||||
| Plateforme | Runner | Build |
|
||||
|---|---|---|
|
||||
| Linux | `ubuntu-latest` (déjà en place) | automatique à chaque tag `desktop-v*` |
|
||||
| Windows | **à enregistrer** | job `windows`, activé par la variable `ENABLE_WINDOWS_BUILD` |
|
||||
| Windows | **à enregistrer** | job **retiré** du workflow ; manuel (`npm run dist:win` sur Windows) |
|
||||
| macOS | aucun | manuel (`npm run dist:mac` sur un Mac) |
|
||||
|
||||
Le job Windows est conditionné par `if: vars.ENABLE_WINDOWS_BUILD == 'true'`. Tant que la variable
|
||||
n'existe pas, le job est **sauté** : la release Linux part normalement. Sans cette condition, un job
|
||||
`runs-on: windows-latest` sans runner disponible resterait en attente et bloquerait la release entière.
|
||||
Le job Windows a d'abord été gardé dans le workflow, conditionné par
|
||||
`if: vars.ENABLE_WINDOWS_BUILD == 'true'`. Cela **n'a pas suffi** : sans runner labellisé
|
||||
`windows-latest`, la release entière tombait en erreur au lieu de sauter le job. Il est donc
|
||||
**retiré** de `.gitea/workflows/desktop-release.yml`. Son dernier état complet est dans l'historique
|
||||
git (tag `desktop-v0.2.3`) : après avoir enregistré le runner ci-dessous, restaurer ce job, puis
|
||||
remettre dans `latest-channel` le `download-artifact` de `desktop-windows` ainsi que
|
||||
`dl/*.exe dl/latest.yml` dans la liste d'assets du canal flottant.
|
||||
|
||||
## 1. Préparer la machine Windows
|
||||
|
||||
|
||||
Reference in New Issue
Block a user