Aller au contenu principal

Publication et mise à jour

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
  • Les builds ont leur code signé

À ce stade, nous supposerons que vous avez déjà poussé tous votre code vers un repository GitHub public.

Autres services de mise à jour

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 install --save-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.

forge.config.js
module.exports = {
publishers: [
{
name: '@electron-forge/publisher-github',
config: {
repository: {
owner: 'github-user-name',
name: 'github-repo-name'
},
prerelease: false,
draft: true
}
}
]
}
Ebauches des releases avant publication

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.

package.json
  //...
"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 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.

Marquage des versions

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

Il peut être un peu pénible de publier localement, surtout parce que vous ne pouvez créer que des livrables pour votre système d'exploitation hôte (i. . vous ne pouvez pas publier un fichier .exe Window à 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 à Pipeline de Build et Release de Fiddle et à la Configuration de Forge 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 install update-electron-app

Ensuite, importez le module et appelez-le immédiatement dans le processus principal.

main.js
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.

🌟 Vous avez terminé!

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.