0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者向けCI/CD実践 - Part3 - 開発プロジェクトの準備編

Last updated at Posted at 2020-10-25

CI/CD環境を構築

本連載は、「CI/CDを実践してみたい」という超初心者向けの内容となっています
enterpriseレベルやproductionレベルの導入に際して、「CI/CDとは?」という感覚をつかむものとなれば幸いです。
利用するツール等はこちらで選定していますので、別のツールを利用する場合は、適宜お調べください。
大まかな内容としては、以下のようなフローとなります

  1. 環境構築
  1. CI/CDツールの構築
  2. 開発プロジェクトの準備<-今回はここを説明
    • GitHubにプロジェクトデータを登録
    • Jenkins Pluginのインストール
    • 手動ビルド
  3. CI/CDツールとその他ツールの併用例
    2. テストツールとの協調
    3. インスペクションツールとの協調
  4. pipelineの実現

概要

  • GitHubのリモート、ローカルレポジトリの設定
  • Jenkins Pluginの自動インストール
  • ジョブの作成、実行、結果の確認

GitHubにプロジェクトデータの登録

CI/CDツールの利用例を理解するにあたって、Jenkins実践入門のモデルプロジェクトを利用させていただく

最初にプロジェクトデータの登録を行う
(事前にGitHubアカウントの作成とログインを済ませておく)
下図の通り、リンク先で右上Forkボタンをクリック
図10.png

すると、自分のレポジトリ内に<GitHubアカウント>/Jenkins_Practical_Guide_3rd_Editionが現れる
図11.png

続いて、プロジェクトデータをローカルレポジトリで取得する

リモートレジストリ上で<GitHubアカウント>/Jenkins_Practical_Guide_3rd_Editionをクリックした後、リモートレジストリ上のブランチを指すリンクをコピーする

図12.png

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と入力し以下のようにインストール

図13.png

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しているので入力不要)

図14.png

「ビルド・トリガの設定」
手動ビルドのため、今回は設定しない

「ビルドタスクの設定」
以下の図のように入力し、「保存」をクリック

 図15.png

「ビルド後の処理の設定」
手動ビルドのため、今回は設定しない

ビルドの実行
下図の通りBuild Nowを選択すると、ビルドが実行される
図18.png
ビルド結果が成功していれば、赤枠で囲まれた通り※1になる

※1
: 問題なし
: ビルドは成功。テスト結果やコード解析に問題あり
: ビルドの失敗
: ビルド未実行

ビルドの履歴や特定のビルド情報を確認する際は

  1. dashboard
  2. 左ペインのビルド履歴
       - ビルド履歴の一覧を確認できる
  3. 特定のビルドをクリック
       - Workspaceからはプロジェクトの中身をディレクトリ構成で確認可能
       - Recent Changeからは直近の変更点のみを確認可能
       - その他、誰が実行したか、テスト結果等を確認できる

リリース対象物の保存
最後に、リリース対象物をまとめて簡単に確認できる場所に配置する設定を行う

"JenkinsJOB"等の特定のジョブを選択 > 設定 > ビルド後の処理にて成果物保存を選択しパスを指定

図20.png

ビルドを実行すると、dashboardやホスト上にsampleproject.warが作成される

図21.png

$ 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
0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?