CI/CD環境を構築
本連載は、「CI/CDを実践してみたい」という超初心者向けの内容となっています
enterpriseレベルやproductionレベルの導入に際して、「CI/CDとは?」という感覚をつかむものとなれば幸いです。
利用するツール等はこちらで選定していますので、別のツールを利用する場合は、適宜お調べください。
大まかな内容としては、以下のようなフローとなります
- 環境構築
- CI/CDツールの構築
- 開発プロジェクトの準備<-今回はここを説明
- GitHubにプロジェクトデータを登録
- Jenkins Pluginのインストール
- 手動ビルド
- CI/CDツールとその他ツールの併用例
- テストツールとの協調
- インスペクションツールとの協調
- 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も考慮して自動でインストールしてくれるので、基本的には前者を選択
インターネットアクセスが可能な環境なので、前者で実施
手順はこちら
1. Jenkins dashboard
2. 左ペインのJenkinsの管理
3. 中央ペインのPluginの管理
4. 利用可能
タブの選択
5. 検索窓にJaCoCo
と入力し以下のようにインストール
top pageに戻った後、その他Pluginも同様にインストール
手動ビルドの実施
では、実際にJenkinsを利用していきましょう
手動ビルド以外の様々な操作は次回以降で紹介していきます
実施フローは以下の通り
1. ジョブの設定
1. 新規ジョブの作成
2. VCSの設定
3. ビルド・トリガの設定
4. ビルドタスクの設定
5. ビルド後の処理の設定
2. ビルドの実行
3. リリース対象物の保存
ジョブの設定
「新規ジョブの作成」
dashboard > 新規ジョブの作成
>
Item名を"JenkinsJOB"とし、FreeStyle project
を選択しOK
をクリック
「VCSの設定」
以下の図のように入力
また、GitHubのプロジェクトがprivacy
の場合、Credentialを入力する必要がある
(今回はpublish
プロジェクトをForkしているので入力不要)
「ビルド・トリガの設定」
手動ビルドのため、今回は設定しない
「ビルドタスクの設定」
以下の図のように入力し、「保存」をクリック
「ビルド後の処理の設定」
手動ビルドのため、今回は設定しない
ビルドの実行
下図の通りBuild Now
を選択すると、ビルドが実行される
ビルド結果が成功していれば、赤枠で囲まれた通り●※1になる
※1
● : 問題なし
● : ビルドは成功。テスト結果やコード解析に問題あり
● : ビルドの失敗
● : ビルド未実行
ビルドの履歴や特定のビルド情報を確認する際は
1. dashboard
2. 左ペインのビルド履歴
- ビルド履歴の一覧を確認できる
4. 特定のビルドをクリック
- 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