LoginSignup
2
2

More than 1 year has passed since last update.

jenkins学習メモ3 githubからクローン~単体テストを走らせる

Last updated at Posted at 2023-02-22

はじめに

船井総研デジタルのoswです。業務でjenkinsに触れることになったので学習記録を残します。参考になる方がいらっしゃれば幸いです。

このシリーズのゴール

下記をゴールとします。

  • 閉じたLAN環境にあるマシンにjenkins環境を構築(別マシンからjenkinsにアクセス)
  • 手動でジョブを起動し、githubリポジトリをクローン / 単体テストを走らせる

学習環境

  • Windows 11 (WSL2 Ubuntu)
  • Rocky Linux 9.1
  • jenkins 2.375.3

前回の学習内容

サンプルジョブを作成して実行までを学習しました。

パイプラインジョブの作成

前回のサンプルジョブでは、ジョブの設定画面でパラメータを指定していましたが、Pipeline scriptからUIのパラメータへ反映することも可能なようです。

むしろ、Pipeline scriptをjenkinsfileとして保存、gitで管理してそれをパイプラインに読み込ませる事の方が多いでしょうから、ジョブの扱い方としては上記の方が自然かも知れません。

そこで、今回は用意したjenkinsfileを読み込ませてジョブを作成します。

下記が今回使うリポジトリです。

ビルドパラメータをPipeline scriptで定義する

gitで管理しているjenkinsfileを読み込ませるには画像のように[Pipeline script from SCM]を選択し、リポジトリや認証情報、ブランチなどを設定します。1

パイプラインにjenkinsfileを読み込ませる.png

ここで2点注意が必要です。1点目は、設定項目の最後にある「Script Path」にはクローンしたリポジトリからの相対パスを考慮した上でjenkinsファイル名を指定するようです。

jenkinsfile名を指定.png

2点目は、jenkinsfileに関する注意です。jenkinsfileでparametersセクションを使ってパラメータを定義する場合、その値を参照する際は${params.branch}としてください。

jenkinsfileからパラメータを設定する場合、そのジョブを1度実行し終えた段階でUI側にも反映されるようです。${branch}はUIから設定されたパラメータを参照しようとしますので、jenkinsfileを読み込んだ時点で${branch}とすると、まだ設定されていないUI上のパラメータを参照しようとするためエラーとなってしまうようです。

jenkinsにビルド/テストさせる

パイプラインジョブの作成で紹介したjenkinsfileを読み込ませ、実行した結果が下記の画像です。意図した通り、jenkinsfileを管理するリポジトリからjenkinsfileを読み込み、それを参照してgoのサンプルをクローン、テストまで行っています。
jenkinsfile実行結果.png

コンソールの出力結果を見てもテストが走っていることが確認できます。
jenkinsfileコンソール出力結果.png

ジョブ実行後のパラメータを確認する

jenkinsfileで設定するパラメータは、ジョブを実行されるとUI側にも反映されるそうなので、実際に確認してみると画像のように設定されていることが確認できました。
jenkinsfile実行後のパラメータ.png

ジョブ実行後のパラメータを編集する

jenkinsfileを読み込んでパラメータを設定した場合、次回実行時にパラメータを編集した場合は「そのジョブ内」でだけ有効なようです。ジョブの詳細画面、及び「パラメータ付きビルド」でパラメータを編集しても実行後に元に戻るようです。

先程の実行でbranchmainに設定されていますが、これをtestブランチに編集して実行してみます。(もちろんtestブランチは作成されています)
UIのパラメータを詳細画面で修正する.png

きちんと編集されています。「ビルド」で実行します。
UIのパラメータを修正する.png

下記が実行結果です。問題なく正常終了しているようです。
パラメータ編集後の実行結果.png

コンソールの出力結果も確認すると、testブランチに切り替えているようですので成功です。
パラメータ編集後のコンソール出力結果.png

次に、ジョブのビルド画面で先程編集したパラメータの値がどうなっているか確認します。jenkinsfileで定義した値 mainに戻っています。
パラメータ編集したジョブ実行後のジョブ設定.png

おわりに

jenkinsを触る上でのジョブ作成の仕方は最低限は押さえられたのではないかな、と思います。

ゴールは達成できたのでひとまずこのシリーズは終了とします。

  1. 認証情報を追加していない場合は、[+追加]ボタン押下で追加することができます。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2