はじめに
こんにちはSREエンジニアのMakiです。
みなさんJenkinsのSCM使っていますか?
Jenkinsのジョブを管理していく上でこのジョブって誰がどういう目的で作ったんだろう?
と管理者不明のジョブを抱えているところは少なからずあると思います。
この記事ではそうした状況の回避策としてSCMを紹介します。
SCM(Source Code Management)を使ってスクリプトの管理をしてみよう。
SCMとは
Jenkinsで登場する SCM
とは Source Code Management
あるいは Source Control Management
のことです。
SCMではgitやsvnなどでスクリプトを管理し、Jenkinsでスクリプトを呼び出して使うといったことを実現します。
SCMを使ってみる
- SCMを使うためにはまずgitなどのでスクリプトを管理してある必要があります。
こちらのGithub にpipeline 基本編で作ったスクリプトをコミットしています。
https://tielec.blog/index.php/sre/ci-cd/jenkins/pipeline-basic/
これを使ってSCMの機能を使っていきましょう。 - パイプラインのスクリプトをgitから呼び出す。
2-1. ジョブの設定でPipeline script
と書かれている部分をPipeline script from SCM
に変更します。
2-2. リポジトリとスクリプトがコミットされているパスを指定します。
- 保存します。
これでgit からパイプラインを呼び出す設定が完了しました。
ジョブを実行
SCMを設定したジョブが用意できたので早速実行してみます。
-
ジョブを実行するとこのような結果になります。
SCMを使う場合は初めにリポジトリからソースをチェックアウトする処理が走っているのがわかると思います。 -
ジョブの結果を見てみます。
どのリビジョンのものが使われたのかわかるようになっています。 -
Git Build Data
を開くともう少し詳細が分かるようになります。
リビジョンだけでなくビルドしたブランチもここから確認ができます。
何でSCMを使ったほうがいいのか?
では何でSCMを使ったほうがいいのか。
その理由は2点あります。
-
スクリプトの変更履歴が管理できる
Jenkinsを使っているとジョブの中身を変更したい場合が多々発生すると思います。
このときに変更履歴の管理ができていないと、誰がどのような意図で修正を加えたのかがわからなくなってしまいます。
また急に動作がおかしくなった時に修正の影響によるものなのか別の要因によるものなのかの切り分けが難しくなります。
そのため、開発段階ではSCMを使わずに作り、一通りジョブが完成したらgitなどで管理しSCMの機能を使ってジョブの実行をコントロールするようにしましょう。 -
スクリプトの更新があったときにJenkinsと自動連係することができる
Jenkinsでスクリプトの修正を入れたときにすぐに実行結果を確認をしたいという場面はあると思います。
gitでスクリプトを管理していれば修正がマージされたと同時にテストを実行したり、リポジトリに修正がないか定期的にチェックしに行き変更があった場合のみ実行するといったことを行うことも可能になります。
まとめ
SCM
とはSource Code Management
あるいはSource Control Management
のこと。- SCMを使うとスクリプトの変更履歴が管理できる
- Jenkinsと自動連係も実現できる
関連ページ
-
【Jenkins】Pipelineジョブを使ってみよう ~ 基本編 ~
https://tielec.blog/index.php/sre/ci-cd/jenkins/pipeline-basic/ -
【Jenkins】Pipelineジョブを使ってみよう ~ 応用編 ~
https://tielec.blog/index.php/sre/ci-cd/jenkins/pipeline-advance/
おすすめ書籍
[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
初めてJenkinsを学ぶ方におすすめです。
Jenkins
Jenkinsでできることについてもう少し詳しく学びたい方におすすめです。
コメント