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設定を追加する

続きは Jenkins超入門(Vagrant・CentOS7)〜(4)Job作成後編〜