2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub Actionsを用いたelectron-builderのマルチプラットフォームパッケージング

Posted at

GitHub Actionsを用いてelectron-builderのパッケージングの自動化を試した時の作業メモになります。
サンプルコードはplatykun/electron-webpack-quick-start at v0.0.8にあります。

前提:

  • electron-updater向けの実装が完了していること
  • Apple Developer Programへの登録が完了しており、Developer ID Applicationの証明書、秘密鍵が用意できていること

実現したいこと

  • GItHub Actionsを用いる

  • 機密情報はGitHub Secretsへ設定する

  • パッケージ対象OSはWindows、macOSとする

    • macOSのアプリケーションでは、自動アップデートを有効としたいためcode signを行う
    • macOSのnotarizationは実施しない(対象外とする)
  • electron-userland/electron-webpack-quick-startをベースとしたelectronアプリケーションを作成する

実施内容

  • p12ファイルの生成
    • キーチェーンアクセスから、p12ファイルの書き出しを行う
    • パスワードは控えておく
    • 以下コマンドを実行し、base64エンコード後の値を控えておく
$cat  ~/Desktop/hoge.p12 | base64
  • GitHub Secretsへの設定

    • mac向けの自動アップデート機能を有効にするため、 CSC_LINK , CSC_KEY_PASSWORD を環境変数に追加
    • p12ファイル生成で作成した値を利用
      • CSC_LINK へbase64エンコード済の .p12 ファイルを設定
      • CSC_KEY_PASSWORD へパスワードを設定
    • GITHUBのアクセストークンを GH_TOKEN という名前で設定
      • デフォルトで GITHUB_TOKEN を提供してくれているため、通常は設定不要。デフォルトのtokenの場合他リポジトリへのアクセス権限等が付与されていないため、他リポジトリへアクセスする場合には設定が必要。
  • ジョブ定義ファイルの作成

以下定義ファイルを .github/workflows/blank.yml に配置

name: CI

on:
  push:
    branches:
      - master

jobs:
  build-on-mac:
    runs-on: macos-latest
    env:
      GH_TOKEN: ${{ secrets.GH_TOKEN }} # electornのpublishで必要。secrets設定の検証のために自身が設定した `github secrets` の値を取得
      CSC_LINK: ${{ secrets.CSC_LINK }} # electorn-builderのcode signingで必要な設定値
      CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} # electorn-builderのcode signingで必要な設定値
    steps:
      - uses: actions/checkout@v2
      - name: yarn install
        run: yarn
      - name: do package
        run: |
          yarn publish_dist
  build-on-win:
    runs-on: windows-latest
    env:
      GH_TOKEN: ${{ secrets.GH_TOKEN }}
    steps:
      - uses: actions/checkout@v2
      - name: yarn install
        run: yarn
      - name: do package
        run: |
          yarn publish_dist

※ハマったこと

electron-builderのバージョンが古く、以下issueと同様の事象に直面したため electron-builder のversionを上げました

Building on macOS 10.15 fails. Can’t locate Mac/Memory.pm · Issue #3990 · electron-userland/electron-builder · GitHub

おわりに

この程度の設定であれば、半日もあれば簡単に設定できました。
今後実務でGitHub Actionsを取り扱うにあたり、トラブルシュートのためのssh接続( GitHub ActionsにSSHで入る(簡単3ステップ) - Qiita )する方法や、様々な環境向けのパッケージング等の実装方法等を確認していきたいです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?