Publication de version Fleet Electron

VérifiéPrudence

Guide le processus de publication de l'application Fleet Electron : bump de version, changelog, création de release GitHub en brouillon, tag et suivi CI.

Spar Skills Guide Bot
DevOpsIntermédiaire
31/10/2026
Claude Code
#release-management#electron#github-releases#versioning#ci-cd

Recommandé pour

Synthèse automatique

Guide pas à pas la publication d'une nouvelle version de l'application Electron Fleet : bump semver, entrée de changelog, création d'une release GitHub en brouillon, push du tag et suivi du workflow CI jusqu'à la publication automatique.

Points forts

  • Rend explicite la règle critique du brouillon : la release doit exister en draft avant le push du tag, sinon electron-builder ne peut pas y publier les artefacts.
  • Rappelle que l'entrée `## vX.Y.Z` dans CHANGELOG.md est obligatoire car `scripts/extract-release-notes.ts` la recherche et fait échouer les builds si elle manque.
  • Fournit les commandes concrètes de vérification : `gh run list`, `gh run watch`, `gh release view`, ainsi que la liste des six jobs CI attendus.
  • Inclut une procédure de rattrapage pour déplacer un tag poussé trop tôt (suppression locale et distante puis recréation).

Limites

  • Très spécifique au dépôt Fleet : noms de workflows, jobs, scripts et artefacts sont codés en dur et inutilisables tels quels ailleurs.
  • Suppose un accès en écriture au dépôt et une CLI GitHub authentifiée ; aucune alternative (interface web, autres outils) n'est proposée.
  • Ne traite ni le rollback d'une release déjà publiée, ni la gestion des branches de correctif, et la section de vérification des artefacts Linux est tronquée.
Quand l'utiliser

À utiliser lorsque vous préparez et publiez une nouvelle version de l'application Fleet, ou lorsque vous devez diagnostiquer un échec du workflow de release lié au tag, au changelog ou à la release brouillon.

Quand l'éviter

À éviter pour un projet qui n'est pas l'application Electron Fleet ou pour une publication qui ne passe pas par GitHub Releases et electron-builder.

Analyse de sécurité

Prudence
Score qualité82/100

The skill is a straightforward, well-scoped release runbook with no untrusted downloads, encoded payloads, or secret exfiltration. It does direct the agent to use powerful, state-changing tooling (git push, gh release delete, gh workflow run) against a shared repository, so it warrants 'caution' rather than 'safe', but all commands are purposeful and consistent with a normal release process.

Points d'attention
  • •No allowed-tools declared, yet the skill instructs the agent to run git, npm, and GitHub CLI commands with repo/release write access (git push, gh release create/delete, gh workflow run). The tool declaration should include Bash/git/gh to match actual needs.
  • •Troubleshooting includes irreversible remote operations: `git push origin :refs/tags/<TAG>` (remote tag deletion) and `gh release delete <TAG> --yes` (release deletion). These are legitimate release-repair steps but are destructive and depend on correct tag substitution; a wrong version string could delete the wrong remote tag/release.
  • •Workflow pushes directly to `main` without a PR or branch check, and moving/deleting tags on a shared remote can disrupt other contributors' clones — process risk rather than a security flaw.
  • •No credential/secret handling, exfiltration, obfuscation, or safety-disabling behavior present.
  • •Includes destructive/irreversible git operations on remote refs (deleting and re-pushing tags: `git tag -d`, `git push origin :refs/tags/...`) and `gh release delete --yes`, which can remove published artifacts or rewrite tag history if run against the wrong version
  • •Commands assume GitHub CLI (`gh`) is authenticated with release/publish permissions on the repo; a mis-targeted run could affect published releases
  • •No declared allowed-tools, yet the instructions call for bash/git/npm/gh execution — the host must grant shell access for the skill to be usable
Comment cette analyse est faite

Exemples

Ship a patch release
Cut a new patch release for Fleet, say 1.4.2 — bump package.json, add the changelog entry, open the draft release and push the tag.
Recover from a mis-ordered tag
I pushed the v1.4.2 tag before committing the CHANGELOG entry and the release builds failed. How do I move the tag and re-trigger the workflow?
Check release completion
The tag release for v1.5.0 is running — show me how to watch the CI jobs and confirm the draft got published with all macOS, Windows and Linux artifacts.

name: release description: This skill should be used when creating a new release for the Fleet Electron app. It covers version bumping, tagging, creating draft GitHub releases, and monitoring CI builds. Triggers on "release", "new version", "bump version", "tag release", "publish release", or any release workflow request.

Release

Overview

This skill guides the release process for the Fleet Electron app. Fleet uses electron-builder with GitHub Releases as the publish provider. The release workflow (.github/workflows/release.yml) builds for macOS (arm64 + x64), Windows, and Linux when a version tag is pushed. A final publish-release job automatically publishes the draft release after all builds succeed. CI checks live separately in .github/workflows/ci.yml.

Critical Rule

Releases MUST be created as draft. When electron-builder --publish always runs in CI, it uploads artifacts to an existing draft GitHub release matching the tag. If the release is not draft (or does not exist as draft), the build artifacts will fail to publish to it. The publish-release CI job handles publishing automatically after all builds complete.

Release Workflow

Step 1: Determine the New Version

Follow semver conventions:

  • Patch (1.2.0 → 1.2.1): Bug fixes only
  • Minor (1.2.0 → 1.3.0): New features, backward compatible
  • Major (1.2.0 → 2.0.0): Breaking changes

Step 2: Bump the Version in package.json

Update the "version" field in package.json to the new version. Do not modify package-lock.json manually — run npm install to sync it.

npm install

Step 3: Add a Changelog Entry

This step is required. The CI release workflow runs scripts/extract-release-notes.ts which looks for a ## vX.Y.Z heading in CHANGELOG.md matching the tag. If the entry is missing, all build jobs will fail.

Add the entry at the top of CHANGELOG.md:

## v<NEW_VERSION>

- Summary of changes

Step 4: Commit Version Bump and Changelog Together

git add package.json package-lock.json CHANGELOG.md
git commit -m "chore: bump version to <NEW_VERSION>"

Step 5: Push to Main

git push origin main

Step 6: Create Draft Release and Push Tag

First, create the draft release on GitHub:

gh release create v<NEW_VERSION> --draft --title "v<NEW_VERSION>" --generate-notes

Then create and push the tag locally. Draft releases do not create remote tags, so the tag must be pushed to trigger the release workflow:

git tag v<NEW_VERSION>
git push origin v<NEW_VERSION>

Important: The tag must point to a commit that already includes the CHANGELOG.md entry. If you accidentally pushed the tag before the changelog commit, move the tag:

git tag -d v<NEW_VERSION> && git push origin :refs/tags/v<NEW_VERSION>
git tag v<NEW_VERSION> && git push origin v<NEW_VERSION>

Step 7: Monitor CI

The tag push triggers the release workflow (.github/workflows/release.yml). Monitor it:

gh run list --limit 5
gh run watch

Six jobs run for a tag release:

  • verify-version (ubuntu-latest) - checks that the tag matches package.json
  • release-mac-arm64 (macos-15)
  • release-mac-x64 (macos-15)
  • release-win (windows-latest)
  • release-linux (ubuntu-latest)
  • publish-release — runs after all four build jobs succeed, automatically publishes the draft release

Each build job uses electron-builder --publish always which uploads artifacts to the draft release. Once all four succeed, publish-release flips the release from draft to published.

Step 7: Verify the Release

After CI completes (including the publish-release job), verify the release is published with all artifacts:

gh release view v<NEW_VERSION>

Expected artifacts:

  • macOS: Fleet-<VERSION>-arm64.dmg, Fleet-<VERSION>.dmg (x64), latest-mac.yml
  • Windows: Fleet-Setup-<VERSION>.exe, latest.yml
  • Linux: Fleet-<VERSION>.AppImage, Fleet-<VERSION>.deb, latest-linux.yml

The latest-*.yml files are auto-update manifests used by electron-updater.

Troubleshooting

"No changelog entry found" error in CI

The extract-release-notes.ts script requires a ## vX.Y.Z heading in CHANGELOG.md matching the tag. Add the entry, commit it to main, then move the tag to that commit:

git tag -d v<NEW_VERSION> && git push origin :refs/tags/v<NEW_VERSION>
git tag v<NEW_VERSION> && git push origin v<NEW_VERSION>

Do not use gh run rerun — the re-run checks out the tag commit, not main, so new commits won't be picked up unless the tag is moved first.

CI build job failed — release stays in draft

The publish-release job only runs when all four build jobs succeed. If any build fails, the release remains draft. Fix the issue and re-run the failed job:

gh run rerun <RUN_ID> --failed

electron-builder publish is idempotent for draft releases — it will upload/overwrite artifacts. Once the re-run succeeds, publish-release will run automatically.

Artifacts missing from release

Verify the release is still in draft state. If it was accidentally published before CI completed, delete the release (not the tag), recreate as draft, and re-run CI:

gh release delete v<NEW_VERSION> --yes
gh release create v<NEW_VERSION> --draft --title "v<NEW_VERSION>" --generate-notes --target main
gh workflow run release.yml

Version mismatch error in CI

The verify-version job checks that the tag matches package.json. Ensure the version bump commit was pushed before the tag was created.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/fleet-electron-release-workflow-mvg6ty55' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fleet-electron-release-workflow-mvg6ty55/download' --output '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md.part' && mv '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md.part' '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md' && test -s '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/release' && cp -R '.skill-downloads/fleet-electron-release-workflow-mvg6ty55' '.claude/skills/release'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/fleet-electron-release-workflow-mvg6ty55'

openskills read 'fleet-electron-release-workflow-mvg6ty55'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires