Publication et mise à jour
Ceci est la partie 6 du tutoriel Electron.
Objectifs
Si vous avez suivi depuis le début, ceci est la dernière étape du tutoriel! Dans cette partie, vous allez publier votre application sur GitHub et intégrer du code pour la mise à jour automatique de votre application.
Utilisation de update.electronjs.org
Les mainteneurs d’Electron fournissent un service gratuit de mise à jour automatique pour les applications open source sur https://update.electronjs.org. Ses exigences sont les suivantes :
- L'application tourne sous macOs ou Windows
- L'application a un répertoire GitHub public
- Les compilations sont publiées dans GitHub releases
- Builds are code signed (macOS only)
À ce stade, nous supposerons que vous avez déjà poussé tous votre code vers un repository GitHub public.
Si vous utilisez un autre dépot (par exemple, GitLab ou Bitbucket) ou si vous devez garder votre référentiel de code privé, veuillez vous référer à notre guide étape par étape sur l’hébergement de votre propre serveur de mise à jour Electron.
Publication d’une version sur GitHub
Electron Forge a des plugins Publisher pouvant automatiser la distribution de votre application empaquetée vers différentes sources. Dans ce tutoriel, nous utiliserons le Publisher vers GitHub, ce qui nous permettra de publier notre code sur les releases de GitHub.
Génération d'un jeton d'accès personnel
Sans autorisation, Forge ne peut publier dans aucun répertoire de GitHub . Vous devez passer un jeton authentifié qui donne à Forge accès à vos versions sur GitHub. Le moyen le plus simple de le faire est de créer un nouveau jeton d’accès personnel (PAT) avec la portée public_repo
, ce qui donne un accès en écriture à vos référentiels publics. Assurez-vous de garder ce jeton secret.
Configuration du Publisher GitHub
Installation du module
Le Publisher GitHub de Forge est un plugin qui doit être installé dans le devDependencies
de votre projet :
- npm
- Yarn
npm install --save-dev @electron-forge/publisher-github
yarn add --dev @electron-forge/publisher-github
Configuration du Publisher dans Forge
Une fois que vous l’avez installé, vous devez le configurer dans votre configuration Forge . Une liste complète des options est documentée dans la documentation de Forge PublisherGitHubConfig
.
module.exports = {
publishers: [
{
name: '@electron-forge/publisher-github',
config: {
repository: {
owner: 'github-user-name',
name: 'github-repo-name'
},
prerelease: false,
draft: true
}
}
]
}
Notez que vous avez configuré Forge pour publier une ébauche de votre version. Cela vous permettra de voir la version avec les artefacts générés sans la publier réellement aux utilisateurs finaux. Vous pouvez publier manuellement vos publications via GitHub après avoir écrit des notes de version et vérifier que vos livrables fonctionnent.
Configuration de votre jeton d’authentification
Vous devez également informer le Publisher de votre jeton d'authentification. Par défaut, il utilisera la valeur stockée dans la variable d'environnement GITHUB_TOKEN
.
Exécution de la commande publish
Ajoutez la commande publish de Forge à vos scripts npm.
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish"
},
//...
Cette commande exécutera vos "makers" configurés et publiera les livrables dans une nouvelle version sur GitHub.
- npm
- Yarn
npm run publish
yarn run publish
Par défaut, cela ne publiera qu'une seule distribution pour vos système d'exploitation hôte et architecture . Vous pouvez publier pour différentes architectures en transmettant l’indicateur --arch
à vos commandes Forge.
Le nom de cette version correspondra au champ version
du fichier package.json de votre projet.
Vous pouvez aussi, éventuelement, taguer vos versions dans Git pour que votre version soit associée à un point référencé dans l'historique de votre code. npm est livré avec la commande npm version
qui est pratique pour gérer à votre place les collisions de numéro et le marquage des version.
Bonus : Publication dans les Actions de GitHub
Publier localement peut être délicat, surtout que vous ne pouvez créer que des distributions pour votre système d'exploitation hôte (i. . vous ne pouvez pas publier un fichier .exe
Windows à partir de macOS).
Une solution pour cela serait de publier votre application via des processus automatisés tels que les Actions de GitHub, pouvant exécuter des tâches dans le cloud sur Ubuntu, macOS et Windows. C’est exactement l’approche adoptée par 'Electron Fiddle. Vous pouvez vous référer à Build and Release pipeline et Forge configuration de Fiddle pour plus de détails.
Instrumentation de votre code de mise à jour
Maintenant que nous avons un système de version fonctionnel via GitHub, nous devons maintenant dire à notre application Electron de télécharger une mise à jour pour chaque nouvelle version sortie. Les applications Electron utilisent pour cela le module autoUpdater, qui vérifie à partir d’un flux du serveur de mise à jour la disponibilité éventuelle en téléchargement d'une nouvelle version.
Le service update.electronjs.org fournit un flux compatible avec le programme de mise à jour. Par exemple, Electron Fiddle v0.28.0 vérifiera le point de terminaison à https://update.electronjs.org/electron/fiddle/darwin/v0.28.0 pour voir si une version plus récente est disponible sur GitHub.
Une fois votre version publiée sur GitHub, le service update.electronjs.org doit fonctionner pour votre application. Il ne reste plus qu'à configurer le flux avec le module de mise à jour automatique.
Pour faciliter ce processus, l'équipe d'Electron maintient le module update-electron-app
, qui met en place tout ce qui est nécessaire à autoUpdater pour update.electronjs.org dans un seul appel de fonction et ce sans— aucune configuration requise. Ce module va rechercher dans flux update.electronjs.org ce qui qui correspond au champ "repository"
du fichier package.json de votre projet.
Tout d'abord, installez le module en tant que dépendance d'exécution.
- npm
- Yarn
npm install update-electron-app
yarn add update-electron-app
Ensuite, importez le module et appelez-le immédiatement dans le processus principal.
require('update-electron-app')()
Et il ne faut rien de plus! Une fois votre application empaquetée, elle se mettra à jour pour chaque nouvelle version GitHub que vous publierez.
Récapitulatif
Dans ce tutoriel, nous avons configuré le Publisher GitHub d’Electron Forge pour télécharger les distribuables de votre application vers les "releases" de GitHub. Comme les livrables ne peuvent pas toujours être générées entre plates-formes, Nous vous recommandons de configurer processus de génération et de publication dans un pipeline d'intégration continue si vous n'avez pas accès aux machines.
Les applications Electron peuvent s’auto-mettre à jour en faisant pointer le module autoUpdater vers un flux de serveur de mise à jour. update.electronjs.org est un serveur de mise à jour gratuit fourni par Electron pour les applications open-source publiées sur GitHub. Configurer votre application Electron pour utiliser ce service est aussi simple que l'installation et l'importation du module update-electron-app
.
Si votre application n'est pas éligible à update.electronjs.org, vous devrez alors déployer votre propre serveur de mise à jour et configurer le module autoUpdater vous-même.
Arrivé à ce point, vous avez officiellement terminé notre tutoriel Electron. N'hésitez pas à explorer le reste de de notre documentation et nous vous souhaitons de bons developpements! Si vous avez des questions, veuillez joindre notre communauté sur le serveur Discord.