CI/CD環境を構築
本連載は、「CI/CDを実践してみたい」という超初心者向けの内容となっています
enterpriseレベルやproductionレベルの導入に際して、「CI/CDとは?」という感覚をつかむものとなれば幸いです。
利用するツール等はこちらで選定していますので、別のツールを利用する場合は、適宜お調べください。
大まかな内容としては、以下のようなフローとなります
- 環境構築
- CI/CDツールの構築
-
開発プロジェクトの準備<-今回はここを説明
- GitHubにプロジェクトデータを登録
- Jenkins Pluginのインストール
- 手動ビルド
- CI/CDツールとその他ツールの併用例
2. テストツールとの協調
3. インスペクションツールとの協調 - pipelineの実現
概要
GitHub
のリモート、ローカルレポジトリの設定
- Jenkins Pluginの自動インストール
- ジョブの作成、実行、結果の確認
GitHubにプロジェクトデータの登録
CI/CDツールの利用例を理解するにあたって、Jenkins実践入門のモデルプロジェクトを利用させていただく
最初にプロジェクトデータの登録を行う
(事前にGitHubアカウントの作成とログインを済ませておく)
下図の通り、リンク先で右上Fork
ボタンをクリック
すると、自分のレポジトリ内に<GitHubアカウント>/Jenkins_Practical_Guide_3rd_Edition
が現れる
続いて、プロジェクトデータをローカルレポジトリで取得する
リモートレジストリ上で<GitHubアカウント>/Jenkins_Practical_Guide_3rd_Edition
をクリックした後、リモートレジストリ上のブランチを指すリンクをコピーする
terminal上で以下のコマンドを実行
$ pwd
$ mkdir <demo用directory> //demo開発用のdirectryを適宜作成
$ cd <demo用directory>
$ git clone https://github.com/tem-individual/Jenkins_Practical_Guide_3rd_Edition.git sampleproject
以下のようになっていれば、成功
$ cd sampleproject
$ ls -a
. .. .git Jenkinsfile LICENSE build.gradle config pom.xml readme.md src
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/<GitHubアカウント>/Jenkins_Practical_Guide_3rd_Edition.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Pluginのインストール
今回のdemo開発では、下記4つのpluginをインストールします
- JaCoCo Plugin
- Checkstyle Plugin
- FindBugs Plugin
- StepCounter Plugin
Jenkins Pluginのインストール方法は2通りあります
- アップデートサイトを経由したインストール
- 自分でダウンロードしてインストール
注意
「自分でダウンロードしてインストール」を実施する際は、インストールするJenkins Pluginの依存性を確認する必要性がある。
「アップデートサイトを経由したインストール」では、依存性のあるその他のPluginも考慮して自動でインストールしてくれるので、基本的には前者を選択
インターネットアクセスが可能な環境なので、前者で実施
手順はこちら
- Jenkins dashboard
- 左ペインの
Jenkinsの管理
- 中央ペインの
Pluginの管理
-
利用可能
タブの選択 - 検索窓に
JaCoCo
と入力し以下のようにインストール
top pageに戻った後、その他Pluginも同様にインストール
手動ビルドの実施
では、実際にJenkinsを利用していきましょう
手動ビルド以外の様々な操作は次回以降で紹介していきます
実施フローは以下の通り
- ジョブの設定
1. 新規ジョブの作成
2. VCSの設定
3. ビルド・トリガの設定
4. ビルドタスクの設定
5. ビルド後の処理の設定 - ビルドの実行
- リリース対象物の保存
ジョブの設定
「新規ジョブの作成」
dashboard > 新規ジョブの作成
>
Item名を"JenkinsJOB"とし、FreeStyle project
を選択しOK
をクリック
「VCSの設定」
以下の図のように入力
また、GitHubのプロジェクトがprivacy
の場合、Credentialを入力する必要がある
(今回はpublish
プロジェクトをForkしているので入力不要)
「ビルド・トリガの設定」
手動ビルドのため、今回は設定しない
「ビルドタスクの設定」
以下の図のように入力し、「保存」をクリック
「ビルド後の処理の設定」
手動ビルドのため、今回は設定しない
ビルドの実行
下図の通りBuild Now
を選択すると、ビルドが実行される
ビルド結果が成功していれば、赤枠で囲まれた通り●※1になる
※1
● : 問題なし
● : ビルドは成功。テスト結果やコード解析に問題あり
● : ビルドの失敗
● : ビルド未実行
ビルドの履歴や特定のビルド情報を確認する際は
- dashboard
- 左ペインの
ビルド履歴
- ビルド履歴の一覧を確認できる - 特定のビルドをクリック
-Workspace
からはプロジェクトの中身をディレクトリ構成で確認可能
-Recent Change
からは直近の変更点のみを確認可能
- その他、誰が実行したか、テスト結果等を確認できる
リリース対象物の保存
最後に、リリース対象物をまとめて簡単に確認できる場所に配置する設定を行う
"JenkinsJOB"等の特定のジョブを選択 > 設定
> ビルド後の処理
にて成果物保存
を選択しパスを指定
ビルドを実行すると、dashboardやホスト上にsampleproject.war
が作成される
$ sudo su -
$ cd /var/lib/docker/volumes/jenkins-data/_data/workspace/JenkinsJOB/target
$ ls
checkstyle-cachefile checkstyle-result.xml findbugsXml.xml generated-test-sources maven-archiver sampleproject-1.0.0 surefire-reports
checkstyle-checker.xml classes generated-sources jacoco.exec maven-status sampleproject.war test-classes