Jenkinsを試す

CIツールJenkinsのWindows Native版をインストールして試用している。

全体にうまく動作する。かなりの安定度に感心した。

ひとつ、よくある落とし穴にはまったのが証明書の管理。

SignTool Error: No certificates were found that met all the given criteria. というエラーが出てsigntoolで署名できない。

証明書がシステムのサービスアカウントのストアに入っていないためにエラーになるのだ。Windwosサービスで起動するJenkinsはシステムのサービスアカウントで実行される。このアカウントからは、実際に証明書を取り込んだユーザーの証明書ストアにアクセスできない。

Jenkinsの起動ユーザーを実在のアカウントにして、そのアカウントで証明書をインポートすることで回避した。 証明書の仕組みがよくわかっておらず、最初はシステム共通の証明書に対するアクセスの問題なのか、と、ファイルやレジストリを探して時間を無駄にしてしまった。

手元のWindows7で見てみると

\Users\ユーザ\AppData\Roaming\Microsoft\Crypto\RSA

の下にフォルダが作られ、インポートした証明書はそこにおかれているようだ。

signtoolに限らず実ユーザアカウントと関連するものを実行する場合には、サービスの設定変更か、実行されるコマンド類の変更が必要になる可能性がある。

また、Windowsの場合、Windowsのコマンドはまとめて .batファイルに吐き出されてから実行される。それぞれのbatchファイルはcallで呼び出さないと最初のbatchファイルで実行終了する。

call build.bat
call next.bat
広告

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。