日々精進

新しく学んだことを書き留めていきます

Jenkins

Jenkinsでビルドするとcodesignがパスワードの入力を求めてくる

Jenkinsでビルドすると、パスワードの入力を求めるダイアログが表示されて鬱陶しい。。 これはJenkinsがcodesignする時に証明書にアクセスできないことが原因。 証明書をキーチェーンの「ログイン」から「システム」にコピーするとJenkinsからも証明書にアク…

Jenkinsでビルドすると「sshキー〜のパスワードを入力して下さい」が何度も出る

2014-04-28 - 日々精進で照会した方法でJenkinsからキーチェーンにアクセスできるようにしていたのだけど、以下のコマンドでは-t 3600が指定されているので、1時間たったらまたパスワードを入力する必要があった。 security unlock-keychain ${HOME}/Library…

Mac上のJenkinsでビルドすると、「sshキー〜のパスワードを入力して下さい」というダイアログが表示される

gitでリモートリポジトリにアクセスする度に出るから非常にうざいです。 原因は、.ssh下に置いている秘密鍵ファイルにアクセスする権限をJenkinsが持っていないため。 詳しくはわからないが、JenkinsはMacのログインユーザと異なるユーザでシェルスクリプト…

Jenkinsでビルドすると「User interaction is not allowed」エラー

2014-04-28 - 日々精進 上記日記に書いた対応で直ったかと思ったが、 やっぱりまだ出ることがある。 問題なくビルド出来ることもあるんだけど・・・不思議。 以下手順で直った。 ・キーチェーンを開く ・「分類」から証明書を選択 ・ビルドに使う証明書に紐…

Jenkinsでビルド時にgit fetchしたら「Permission denied」エラー

ビルド時に以下のエラーが出て困った。OSはMac。 Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress ssh://repourl +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: Permission denied, …

Jenkinsでビルドすると「Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress ssh://・・・" returned status code 128:」エラー

原因はsshキーにアクセス出来ないこと。 このエラーメッセージが表示された時にJenkinsが動いているMacで「sshキー・・・のパスワードを入力して下さい」というダイアログが表示されている。 これにパスワードを入力しても再度ダイアログが表示されるだけで…

Jenkinsでビルドすると「User interaction is not allowed」エラー

Keychainへのアクセスが許可されていないことが原因。 以下のコマンドを実行して許可すると直る。。はずが、直らなかった。 security unlock-keychain ${HOME}/Library/Keychains/login.keychain security set-keychain-settings -t 3600 -l ~/Library/Keych…

JenkinsのCSSが壊れる問題

MacにインストールしているJenkinsのCSSが壊れ、表示が崩れる問題の原因は、以下によると「JettyのキャッシュがOSの日次処理(`man 8 periodic`)で削除されてしまう」ことらしい。 人類最大の謎。JenkinsのCSS壊れる問題が解明された - laiso 以下のIssueを見…

jenkinsのJob設定画面で「ロード中」が表示されたままになる

原因はプラグインのエラー。 自分の場合はプラグインのバージョンをすべて最新にすると直った。 参考:Jenkins にすべてのプラグインを入れたらどうなるか (フェンリル | デベロッパーズブログ)

Jenkinsでビルドする時、ブランチ名に「.」が入っているとビルドエラーになる

test1.0.0のようなブランチをビルドしようとするとエラーになった。 エラーメッセージは以下。 make: *** [build_stg] Error 65 Build step 'シェルの実行' marked build as failuretest1_0_0のようにするとビルドできた。 こんな制限があるのか。。エラーメ…

MacでJenkinsを動かした時に、コンソール出力が文字化けする

文字コードの指定をUTF-8にすれば直る。下記のように二箇所で指定しないといけないので注意。 最初java -jar jenkins.warの後に複数のオプションを付けたらエラーになった。 nohup niceを頭に付けるとエラーが出なくなった。 なぜこれでエラーが出なくなるの…

jenkinsの分指定の0とHの違い

jenkinsのビルドスケジュールを 0 * * * *にするとHを使えというワーニングが出るので、Hを使った場合どうなるか調べてみた。 H * * * *を使うと、毎時1回適当な時間に起動して、負荷を分散してくれるらしい。なるほどー。 参考:ssogabe on Twitter: "cron…

プラグインの管理ページの利用可能プラグイン一覧が空になるのを直す

Jenkinsの管理>プラグインの管理>利用可能 を表示すると、アップデート可能なプラグインはありません的なメッセージが出ていた。 原因はプラグインのアップデートサイトがクリアされていたこと。 プラグインの管理>高度な設定>アップデートサイト に以下…

jenkinsのJOBで環境変数を定義する

あるシェルスクリプトで定義しても、他のシェルスクリプト内ではクリアされているので注意(ちょっとはまった。。) EnvInject Pluginを入れると環境変数を定義出来るようになる。 Jenkins全体で一意な環境変数の場合は Jenkinsの管理>システムの管理>グロ…

doxygenとgraphvizでドキュメント生成

下記記事の通りやるとできた。 Doxygen+Graphvizで、Objective-Cのクラス図を作る - Qiita 手順を書き出すと以下。 ・Doxygenインストール ・Doxyfile生成 brew install doxygen graphviz doxygen -g・できたDoxyfileのHAVE_DOT = NOをYESに変更。 ・doxygen…

mkdirでディレクトリを作成する際に既にディレクトリが存在していてもエラーにならないようにする

pオプションをつけると既にディレクトリが存在していてもエラーにならない。 mkdir -p build

gmail経由でJenkinsからメールを送信する設定

下記の記事の通り設定したら送信出来ました。自分でSMTPサーバを用意しなくていいので楽ちん。 http://blog.maripo.org/2012/07/jenkins-gmail/

Cobertura カバレッジ・レポートで表示した日本語が文字化けする

Jobの設定画面>Cobertura カバレッジ・レポートの集計>高度な設定...>ソースエンコーディング をUTF-8にすれば直る。

jenkinsからsvn checkoutを実行すると「to depth infinity with ignoreExternals: false」エラーが発生する

原因はjenkinsのバグ。最新版では修正されているため、 jenkinsを更新すると直った。 参考:Eclipse Community Forums: Hudson » Subversion Plugin not reverting svn:externals

pmd5.0.5でコードの重複検出が出来ない

pmd5.0.5とObjCLanguage–0.0.7-SNAPSHOT.jarを使ってコードの重複検出をしても出力されるファイルが常に空になる。 原因はpmd5.0.5を使っていることで、pmd4.2.5を使うと正しく動作する。 参考:Safx: JenkinsでObjective-Cのコード重複を採れるようにする

Job設定をGitでバージョン管理する

JenkinsのJobをバージョン管理する場合、config.xmlのみバージョン管理すればいい。 config.xml以外のすべてを無視する.gitignoreの書き方は以下。 * !jobs !jobs/*/ !config.xmlgitignoreの書き方がむずくて困っていたところにgitでJenkinsのconfig.xmlをバ…

スクリプトはバージョン管理すべし

この記事参考になりました。確かにシェルスクリプトもGitでバージョン管理するべきだよね。 git push hookは入れたいけど、ビルドマシンをGlobalに公開してないからな。。 Jenkinsの使い勝手をよくするための見直し6点 | Developers.IO さらに進めてJenkins…

gitのtag指定でチェックアウトし、ビルドする方法

Branch Specifier (blank for default)に「tags/v1.1.1」のようにタグを入力すればOK。 参考:Jenkins Git Plugin: How to build specific tag? - Stack Overflow

schemeを指定してビルドすると「xcodebuild: error: The project does not contain a scheme named」エラー

これは以下のサイトによるとManage Schemes...からSchemeのContainerをWorkspaceにすると直ると書いてある。 xcode - xcodebuild says does not contain scheme - Stack Overflow これに加えて、JenkinsのAdvanced Xcode build options>Xcode Workspace Fil…

githubからコードをチェックアウトする時のCredentialsを設定する

・ダッシュボード>Jenkinsの管理>認証情報の管理 で以下を設定する。 スコープ:グローバル ユーザ名:jenkins 秘密鍵:Jenkinsマスター上の~/.sshから ・$JENKINS_HOME/.sshに秘密鍵をファイル名「jenkins」で配置。 ・以下を一度ターミナルから実行する…

jenkinsをdaemon化し、さらにログインユーザ権限で実行する

下記を参考にするとできます。ほんと有り難いです。 Jenkins をOS X のログインユーザー権限のデーモンで自動起動しておく設定