@@ -213,18 +213,30 @@ jobs:
213213 run : |
214214 df -h
215215
216- # build electronでコード署名するには環境変数を指定が必要だけど、
217- # コード署名しない場合に環境変数を定義するとエラーになるので、動的に環境変数を足す
218216 - name : Define Code Signing Envs
219217 if : startsWith(matrix.os, 'windows-') && github.event.inputs.code_signing == 'true'
220218 shell : bash
221219 run : |
222- # 複数行の文字列を環境変数に代入
223- echo 'CSC_LINK<<EOF' >> $GITHUB_ENV
224- echo "${{ secrets.CERT_BASE64 }}" >> $GITHUB_ENV
225- echo 'EOF' >> $GITHUB_ENV
220+ bash build/codesign_setup.bash
221+ THUMBPRINT="$(head -n 1 $THUMBPRINT_PATH)"
222+ SIGNTOOL_PATH="$(head -n 1 $SIGNTOOL_PATH_PATH)"
223+ echo "::add-mask::$THUMBPRINT"
226224
227- echo 'CSC_KEY_PASSWORD=${{ secrets.CERT_PASSWORD }}' >> $GITHUB_ENV
225+ echo "WIN_CERTIFICATE_SHA1=$THUMBPRINT" >> $GITHUB_ENV
226+ echo 'WIN_SIGNING_HASH_ALGORITHMS=["sha256"]' >> $GITHUB_ENV
227+ echo "SIGNTOOL_PATH=$SIGNTOOL_PATH" >> $GITHUB_ENV
228+
229+ # NOTE: electron-builder 22.14.13 は指定したsigntoolを使わないので、ワークアラウンドとしてディレクトリを差し替える
230+ CACHE_SIGNTOOL_DIR="$ELECTRON_BUILDER_CACHE/winCodeSign/winCodeSign-2.6.0/windows-10/x64"
231+ mv "$CACHE_SIGNTOOL_DIR"{,.bak}
232+ SIGNTOOL_DIR=$(dirname "$SIGNTOOL_PATH")
233+ ln -s "$SIGNTOOL_DIR" "$CACHE_SIGNTOOL_DIR"
234+ env :
235+ ESIGNERCKA_USERNAME : ${{ secrets.ESIGNERCKA_USERNAME }}
236+ ESIGNERCKA_PASSWORD : ${{ secrets.ESIGNERCKA_PASSWORD }}
237+ ESIGNERCKA_TOTP_SECRET : ${{ secrets.ESIGNERCKA_TOTP_SECRET }}
238+ THUMBPRINT_PATH : /tmp/esignercka_thumbprint.txt
239+ SIGNTOOL_PATH_PATH : /tmp/signtool_path.txt
228240
229241 # Build result will be exported to ${{ matrix.artifact_path }}
230242 - name : Build Electron
@@ -243,8 +255,17 @@ jobs:
243255 if : startsWith(matrix.os, 'windows-') && github.event.inputs.code_signing == 'true'
244256 shell : bash
245257 run : |
246- echo 'CSC_LINK=' >> $GITHUB_ENV
247- echo 'CSC_KEY_PASSWORD=' >> $GITHUB_ENV
258+ bash build/codesign_cleanup.bash
259+ echo 'WIN_CERTIFICATE_SHA1=' >> $GITHUB_ENV
260+ echo 'WIN_SIGNING_HASH_ALGORITHMS=' >> $GITHUB_ENV
261+ echo 'SIGNTOOL_PATH=' >> $GITHUB_ENV
262+
263+ # NOTE: ワークアラウンドで差し替えたディレクトリを元に戻す
264+ CACHE_SIGNTOOL_DIR="$ELECTRON_BUILDER_CACHE/winCodeSign/winCodeSign-2.6.0/windows-10/x64"
265+ rm -r "$CACHE_SIGNTOOL_DIR"
266+ mv "$CACHE_SIGNTOOL_DIR"{.bak,}
267+ env :
268+ THUMBPRINT_PATH : /tmp/esignercka_thumbprint.txt
248269
249270 - name : Upload NoEngine Prepackage
250271 uses : actions/upload-artifact@v3
@@ -654,18 +675,30 @@ jobs:
654675 run : |
655676 df -h
656677
657- # build electronでコード署名するには環境変数を指定が必要だけど、
658- # コード署名しない場合に環境変数を定義するとエラーになるので、動的に環境変数を足す
659678 - name : Define Code Signing Envs
660679 if : endsWith(matrix.artifact_name, '-nsis-web') && github.event.inputs.code_signing == 'true'
661680 shell : bash
662681 run : |
663- # 複数行の文字列を環境変数に代入
664- echo 'CSC_LINK<<EOF' >> $GITHUB_ENV
665- echo "${{ secrets.CERT_BASE64 }}" >> $GITHUB_ENV
666- echo 'EOF' >> $GITHUB_ENV
682+ bash build/codesign_setup.bash
683+ THUMBPRINT="$(head -n 1 $THUMBPRINT_PATH)"
684+ SIGNTOOL_PATH="$(head -n 1 $SIGNTOOL_PATH_PATH)"
685+ echo "::add-mask::$THUMBPRINT"
667686
668- echo 'CSC_KEY_PASSWORD=${{ secrets.CERT_PASSWORD }}' >> $GITHUB_ENV
687+ echo "WIN_CERTIFICATE_SHA1=$THUMBPRINT" >> $GITHUB_ENV
688+ echo 'WIN_SIGNING_HASH_ALGORITHMS=["sha256"]' >> $GITHUB_ENV
689+ echo "SIGNTOOL_PATH=$SIGNTOOL_PATH" >> $GITHUB_ENV
690+
691+ # NOTE: electron-builder 22.14.13 は指定したsigntoolを使わないので、ワークアラウンドとしてディレクトリを差し替える
692+ CACHE_SIGNTOOL_DIR="$ELECTRON_BUILDER_CACHE/winCodeSign/winCodeSign-2.6.0/windows-10/x64"
693+ mv "$CACHE_SIGNTOOL_DIR"{,.bak}
694+ SIGNTOOL_DIR=$(dirname "$SIGNTOOL_PATH")
695+ ln -s "$SIGNTOOL_DIR" "$CACHE_SIGNTOOL_DIR"
696+ env :
697+ ESIGNERCKA_USERNAME : ${{ secrets.ESIGNERCKA_USERNAME }}
698+ ESIGNERCKA_PASSWORD : ${{ secrets.ESIGNERCKA_PASSWORD }}
699+ ESIGNERCKA_TOTP_SECRET : ${{ secrets.ESIGNERCKA_TOTP_SECRET }}
700+ THUMBPRINT_PATH : /tmp/esignercka_thumbprint.txt
701+ SIGNTOOL_PATH_PATH : /tmp/signtool_path.txt
669702
670703 # NOTE: prepackage can be removed before splitting nsis-web archive
671704 - name : Build Electron
@@ -688,8 +721,17 @@ jobs:
688721 if : endsWith(matrix.artifact_name, '-nsis-web') && github.event.inputs.code_signing == 'true'
689722 shell : bash
690723 run : |
691- echo 'CSC_LINK=' >> $GITHUB_ENV
692- echo 'CSC_KEY_PASSWORD=' >> $GITHUB_ENV
724+ bash build/codesign_cleanup.bash
725+ echo 'WIN_CERTIFICATE_SHA1=' >> $GITHUB_ENV
726+ echo 'WIN_SIGNING_HASH_ALGORITHMS=' >> $GITHUB_ENV
727+ echo 'SIGNTOOL_PATH=' >> $GITHUB_ENV
728+
729+ # NOTE: ワークアラウンドで差し替えたディレクトリを元に戻す
730+ CACHE_SIGNTOOL_DIR="$ELECTRON_BUILDER_CACHE/winCodeSign/winCodeSign-2.6.0/windows-10/x64"
731+ rm -r "$CACHE_SIGNTOOL_DIR"
732+ mv "$CACHE_SIGNTOOL_DIR"{.bak,}
733+ env :
734+ THUMBPRINT_PATH : /tmp/esignercka_thumbprint.txt
693735
694736 - name : Show disk space (debug info)
695737 shell : bash
0 commit comments