GitHub Actionsでelectronアプリの署名・公証を自動化する
2253 ワード
前提
ローカルの開発マシンでは npm run build
あたりのコマンドで署名・交渉できる状態を想定しています。
action
重要どころにコメントつけています。
結局キーチェーンの証明書を、GUIのダイアログなしで使えるようにするのが大事です。
GUIのダイアログが出てしまうとjobは先にすすまず、タイムアウトまでフリーズしてしまいます。
macは10倍のお値段なのであまり時間無駄にしないためにジョブにタイムアウトを設定しておいたほうがよいです。
jobs:
build-mac:
name: build
runs-on: macos-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# キーチェーン周りのシステムダイアログが出た場合など、ジョブが進まずデフォルトタイムアウト(6時間)まで時間を使ってしまうので、それを回避
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 12.18.1
# 自由に使える my.keychainを作成
- run: security create-keychain -p password my.keychain
# my.keychainをデフォルトキーチェーンにする
- run: security default-keychain -s my.keychain
# p12をインポートできるようにロック解除
- run: security unlock-keychain -p password my.keychain
# キーチェーンのタイムアウトでのロックなどかけないようにする
- run: security set-keychain-settings my.keychain
# 必要な証明書などインポート
# -Aオプションはどのプログラムからも利用できるようにするオプション
# p12は本当は外部から取得している。(わかりやすくローカルにある風に記載)
- run: security import ./certs/macDeveloperIDApplication.p12 -k my.keychain -A -P ${{ secrets.P12PASS }}
- run: security import ./certs/macDeveloperIDInstaller.p12 -k my.keychain -A -P ${{ secrets.P12PASS }}
- run: security import ./certs/developerIdApplication.p12 -k my.keychain -A -P ${{ secrets.P12PASS }}
- run: security import ./certs/developerIDInstaller.p12 -k my.keychain -A -P ${{ secrets.P12PASS }}
# codesignからmy.keychainへのアクセスを許可しておく
- run: "security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k password my.keychain"
# これをしないとインポートしたidentityが認識されない
- run: security list-keychains -s my.keychain
# identityが認識されているか確認
- run: security find-identity -v
- run: npm ci
- name: Build App
timeout-minutes: 15
run: npm run build
# この後はartifactに保存したりリリースしたり好きにしてください
- run: echo DONE!
Author And Source
この問題について(GitHub Actionsでelectronアプリの署名・公証を自動化する), 我々は、より多くの情報をここで見つけました https://qiita.com/sekitaka_1214/items/9f71a68216e53939d015著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .