Spec-Zone.ru › Electron

Публикация и обновление

Следуйте руководству

Это часть 6 руководства по Electron.

  1. Предварительные требования
  2. Создание первого приложения
  3. Использование скриптов предварительной загрузки
  4. Добавление функций
  5. Упаковка приложения
  6. Публикация и обновление

Цели обучения​

Если вы следовали руководству, это последний этап! В этой части вы опубликуете ваше приложение на GitHub releases и интегрируете автоматические обновления в код вашего приложения.

Использование update.electronjs.org​

Разработчики Electron предоставляют бесплатную службу автоматического обновления для приложений с открытым исходным кодом на https://update.electronjs.org. Требования:

  • Ваше приложение работает на macOS или Windows
  • Ваше приложение имеет общедоступный репозиторий на GitHub
  • Сборки публикуются на GitHub releases
  • Сборки подписаны

В этом месте мы будем предполагать, что вы уже загрузили весь свой код в общедоступный репозиторий на GitHub.

Альтернативные сервисы обновления

Если вы используете другой хостинг репозиториев (например, GitLab или Bitbucket) или если вам необходимо сохранить свой репозиторий кода закрытым, обратитесь к нашему пошаговому руководству по размещению собственного сервера обновления Electron.

Публикация релиза на GitHub​

Electron Forge имеет плагины-публикаторы, которые могут автоматизировать распределение вашего упакованного приложения по различным источникам. В этом руководстве мы будем использовать GitHub Publisher, который позволит нам опубликовать наш код на GitHub releases.

Генерация токена доступа​

Forge не может опубликовать в какой-либо репозиторий на GitHub без разрешения. Вам нужно передать аутентифицированный токен, который предоставляет Forge доступ к вашим GitHub releases. Самый простой способ сделать это — создать новый личный токен доступа (PAT) со public_repo объемом, который предоставляет права записи для ваших общедоступных репозиториев. Убедитесь, что этот токен хранится в секрете.

Настройка GitHub Publisher​

Установка модуля​

Плагин GitHub Publisher от Forge нужно установить в проект devDependencies:

  • npm
  • Yarn
npm install --save-dev @electron-forge/publisher-github
yarn add --dev @electron-forge/publisher-github

Настройка публикации в Forge​

После установки, вам нужно настроить его в конфигурации Forge. Полный список параметров приведен в документации API Forge по PublisherGitHubConfig.

package.json
{
  //...
  "config": {
    "forge": {
      "publishers": [
        {
          "name": "@electron-forge/publisher-github",
          "config": {
            "repository": {
              "owner": "github-user-name",
              "name": "github-repo-name"
            },
            "prerelease": false,
            "draft": true
          }
        }
      ]
    }
  }
  //...
}
Создание черновиков релизов до публикации

Обратите внимание, что вы настроили Forge для публикации вашего релиза как черновика. Это позволит вам увидеть релиз с сгенерированными артефактами, не публикуя его для конечных пользователей. Вы можете вручную опубликовать релизы на GitHub после написания примечаний к релизу и проверки работоспособности дистрибутивов.

Настройка токена аутентификации​

Вы также должны проинформировать Publisher о вашем токен аутентификации. По умолчанию он будет использовать значение, хранящееся в переменной среды GITHUB_TOKEN.

Запуск команды публикации​

Добавьте команду публикации Forge в скрипты npm.

package.json
  //...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish"
  },
  //...

Эта команда запустит ваши настроенные инструменты и опубликует выходные дистрибутивы в новый выпуск GitHub.

  • npm
  • Yarn
npm run publish
yarn run publish

По умолчанию это публикует только один дистрибутив для вашей операционной системы и архитектуры. Вы можете опубликовать для разных архитектур, передав --arch флаг в свои команды Forge.

Название этого выпуска будет соответствовать полю version в файле package.json вашего проекта.

Разметка релизов

По желанию, вы также можете [разместить теги релизов в Git][git-tag], чтобы ваш релиз был связан с помеченным этапом в истории вашего кода. npm поставляется с удобной командой npm version, которая может обрабатывать повышение версии и добавление тегов за вас.

Бонус: Публикация в GitHub Actions​

Локальная публикация может быть утомительной, особенно потому, что вы можете создавать дистрибутивы только для вашей хостовой операционной системы (т.е. вы не можете опубликовать файл Windows .exe с macOS).

Решение заключается в публикации вашего приложения через автоматизированные рабочие процессы, такие как GitHub Actions, которые могут запускать задачи в облаке на Ubuntu, macOS и Windows. Именно такой подход используется в Electron Fiddle. Вы можете обратиться к рабочему процессу сборки и выпуска Fiddle и конфигурации Forge для получения дополнительной информации.

Инструментирование кода обновлений​

Теперь, когда у нас есть функциональная система выпуска через GitHub releases, нам необходимо указать нашему приложению Electron загружать обновления всякий раз, когда появляется новая версия. Приложения Electron делают это с помощью модуля autoUpdater, который считывает данные из ленты сервера обновлений, чтобы проверить наличие новой версии для скачивания.

Сервис update.electronjs.org предоставляет ленту, совместимую с обновлением. Например, Electron Fiddle v0.28.0 будет проверять конечную точку по адресу https://update.electronjs.org/electron/fiddle/darwin/v0.28.0, чтобы увидеть, доступен ли более новый выпуск GitHub.

После публикации вашего релиза на GitHub сервис update.electronjs.org должен работать для вашего приложения. Единственный оставшийся шаг — настройка ленты с помощью модуля autoUpdater.

Для упрощения этого процесса команда Electron поддерживает модуль update-electron-app, который настраивает шаблон автообновления для update.electronjs.org в одном вызове функции — никакой конфигурации не требуется. Этот модуль будет искать ленту обновлений update.electronjs.org, соответствующую полю package.json "repository" вашего проекта.

Сначала установите модуль в качестве зависимости времени выполнения.

  • npm
  • Yarn
npm install update-electron-app
yarn add update-electron-app

Затем импортируйте модуль и вызовите его немедленно в главном процессе.

main.js
require('update-electron-app')()

И это все, что нужно! После упаковки вашего приложения оно будет обновляться для каждой новой публикации на GitHub.

Краткое описание​

В этом руководстве мы настраиваем GitHub Publisher Electron Forge для загрузки дистрибутивов вашего приложения на GitHub releases. Поскольку дистрибутивы не всегда могут быть сгенерированы между платформами, мы рекомендуем настроить свой процесс сборки и публикации в конвейере непрерывной интеграции, если у вас нет доступа к машинам.

Приложения Electron могут обновляться самостоятельно, указывая модулю autoUpdater на ленту обновлений сервера. update.electronjs.org — бесплатный сервер обновлений, предоставляемый Electron для открытых приложений, опубликованных на GitHub releases. Настройка вашего приложения Electron для использования этой службы так же проста, как установка и импорт модуля update-electron-app.

Если ваше приложение не соответствует требованиям update.electronjs.org, вам необходимо развернуть свой собственный сервер обновлений и настроить модуль autoUpdater самостоятельно.

🌟 Готово!

На этом вы официально завершили наше руководство по Electron. Не стесняйтесь изучать остальную часть нашей документации и успешного разработки! Если у вас есть вопросы, посетите наш сообщество Discord сервер.

© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/tutorial/tutorial-publishing-updating

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API