設定ファイルを間違えて更新してしまって、ビルド出来なくなったなんて事ありませんか?
僕は良くあります。
なので、Jenkinsのジョブの設定をバージョン管理するようにいたしました。
まず、~/.jenkins/jobsへ移動。
そこで、設定ファイルは<Job-name>/config.xmlなので、
$ git init $ git add */config.xmlとして、config.xmlのバージョン管理を開始します。
次に、設定ファイル以外は基本的にSCMやJenkins側で管理出来るので、
.gitignoreを作成します。
*/builds */config-history */htmlreports */javadoc */lastStable */lastSuccessful */scm-polling.log */subversion.credentials */svnexternals.txt */workspace
作成したら追加します。
$git add .gitignore
次に、Jenkinsのジョブを作成します。
- 古いビルドは破棄
- ビルドの保存最大数は1
- SCMの設定はなし
- ビルド・トリガは良くビルドするジョブを複数指定
最後に、ビルドの部分ですが、シェルの実行を選び、
cd ~/.jenkins/jobs/ git add * NOW=`date +"%Y-%m-%d %H:%M:%S"` git commit -am "Save Configuration ${NOW}"
と記述します。
これで、他のジョブが終われば、自動で設定を保存してくれますが、
config.xmlに変更が無いとgit commit -am がエラーで返って来ます。
ビルドエラーのジョブがあるのは嫌なので、常に変更が掛かるnextBuildNumberをトラッキングします。
$cd ~/.jenkins/jobs $git add */nextBuildNumber
とすると、nextBuildNumberは何かしらのジョブが終わればビルド番号が変わるので、
常に更新されるファイルとなります。
これで設定ファイルをバージョン管理出来るようになりました。
ちなみに
元に戻す方法ですが、$ git log --pretty=\"format:%ad %h (%an): %s\" --date=short $ git show {コミット番号}:{ファイルパス} $ git checkout {コミット番号} {ファイルパス}
とすれば元に戻ります。
0 件のコメント:
コメントを投稿