この記事は3年以上前に書かれた記事で内容が古い可能性があります
Jenkins超入門(Vagrant・CentOS7)〜(3)Job作成・前編〜
Jenkins超入門(Vagrant・CentOS7)〜(2)Jenkinsサーバ初期設定〜 の続き
Job作成1〜gitからコード取得(Checkout)〜
サーバができたのでJobを動かしてみる
前回に引き続き、 こちら を参考に進める
Jenkinsを使った自動テスト環境を作る(前編)
今回のJobは
(1) Gitからコードを取得して(Checkout)
(2) rpmにまとめて(Build-prep、Build)
(3) 任意のサーバにSCP転送(upload)
という一連のJob
この記事では(1)(2)まで作成する
「create new jobs」からjobを作成
(もしこの画面が分からなければ「New Item」 から作成する)
item nameは任意の値を入れて、「Pipeline」を選択
「Description」など適宜入力しつつ、下にスクロール
「Pipeline」のセクションにScriptを入れるのだが
今回は自動生成ツールを利用する
「Pipeline Scripts」をクリック
各項目を入力する
* Sample Step:checkout: Check out from version control
* SCM:Git
* Repository URL:https://github.com/hylom/grrreader
* Branches to build:*/release
Gitに繋がらないというエラーが出る場合は、そもそもgitがjenkinsサーバにインストールされていないのかもしれないのでインストールしてみる
「Failed to connect to repository : Error performing command: git ls-remote -h https://github.com/hylom/grrreader/ HEAD」
gitインストール
[root@localhost vagrant]# yum -y install git
最後に「Generate Pipeline Script」をクリックするとスクリプトが自動生成される
checkout([$class: 'GitSCM', branches: [[name: '*/release']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/hylom/grrreader']]])
先ほどの画面の「Script」に以下の形式で貼り付ける
node { stage '【ステージ(Jobの単位)の名前】' 【ここにスクリプトを貼り付ける】 }
実際は、読みやすいようにインデントも入れrこんな感じ
node { stage 'Checkout' checkout([$class: 'GitSCM', branches: [[name: '*/release']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/hylom/grrreader']] ]) }
「Save」を押してJob作成画面を抜ける
ここまでで、「Gitからコードを取得」のJobが作成された
ここまでのJobがきちんと動くかテストをしてみる
Jobの実行は「Build Now」から実行できる
こちらの画面は2回実行した状態
ステージ部分をクリックし、「Logs」から実行ログを確認できる
実際にコードが取得できたか確認
[root@localhost vagrant]# ls /var/lib/jenkins/workspace/test/dist Makefile grrreader.spec [root@localhost vagrant]#
ある
Job作成2〜取得したコードをrpmにまとめる(Build-prep、Build)〜
次は、先ほどgitから取得したコードをmakeする
コマンドを叩くのは「sh “【コマンド】”」と記載すれば良い
こんな感じで、「cd dist && make clean」と「cd dist && make」を追加する
node { stage 'Checkout' checkout([$class: 'GitSCM', branches: [[name: '*/release']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/hylom/grrreader']] ]) stage 'Build-prep' sh "cd dist && make clean" stage 'Build' sh "cd dist && make" }
ここまでで
(1)Gitからコードを取得して(Checkout)
(2)rpmにまとめて(Build-prep、Build)
が完了したので、次回は
(3)任意のサーバにSCP転送(upload)
のJob設定を追加する