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の場合他リポジトリへのアクセス権限等が付与されていないため、他リポジトリへアクセスする場合には設定が必要。
- mac向けの自動アップデート機能を有効にするため、
-
ジョブ定義ファイルの作成
以下定義ファイルを .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を上げました
おわりに
この程度の設定であれば、半日もあれば簡単に設定できました。
今後実務でGitHub Actionsを取り扱うにあたり、トラブルシュートのためのssh接続( GitHub ActionsにSSHで入る(簡単3ステップ) - Qiita )する方法や、様々な環境向けのパッケージング等の実装方法等を確認していきたいです。