やりたいこと
このプロジェクトを Jenkins にビルドしてほしいのです。
前提条件
- 使う Jenkins はこれ
この記事には初期設定書いていないけれど、 Install suggested plugins
を選択して初期設定を行った。
やったこと
OS へ必要なパッケージをインストール
JavaFX のパッケージが足りないので入れる。
docker-compose exec -u root jenkins /bin/bash
apt update
apt upgrade
apt install openjfx
apt-get clean
exit
Jenkins 全体の設定
環境変数設定
JavaFX を扱うため、 build.gradle
に下記のような設定がされている。
compile files(JAVA_HOME + '/jre/lib/ext/jfxrt.jar')
そのため、Jenkins に ORG_GRADLE_PROJECT_JAVA_HOME
の環境変数が設定されている必要がある。
設定方法は下記の通り。
- Jenkinsの管理 -> システムの設定 -> グローバルプロパティ
- 環境変数のチェックボックスを ON にする
- 下記 2 つの環境変数を追加
- キー: JAVA_HOME, 値:/usr/lib/jvm/java-8-openjdk-amd64/
- キー: ORG_GRADLE_PROJECT_JAVA_HOME, 値:$JAVA_HOME
新しいジョブの作成
ジョブの名前と種類選択
- Enter an item name:
Yadome
- 「フリースタイル・プロジェクトのビルド」を選択
- OK
ビルド定義
General
- GitHub project にチェック
- Project url:
https://github.com/mikoto2000/Yadome
- Project url:
ソースコード管理
- Git を選択
- リポジトリ
- リポジトリURL:
https://github.com/mikoto2000/Yadome
- リポジトリURL:
- リポジトリ
ビルド環境
- 「コンソール出力にタイムスタンプを追加する」にチェック
ビルド
- Invoke Gradle script
- 「Make gradlew executable」にチェック
- Use Gradle Wrapper
- Wrapper location:
./
- Tasks:
build
- Wrapper location:
ビルド後の処理
Yadome では各種レポートを html 出力しているので、もうそれそのまま Jenkins に取っておいてもらえばいいじゃんという考えで設定。
- 成果物を保存
- 保存するファイル:
build/reports/**/*
- 保存するファイル:
ビルド結果
こんな感じで、レポートの html 出力を参照できるのでこの辺はとりあえず妥協できるかなと。
統計情報出したくなったら xml 出力にしてきちんとプラグイン設定する感じで。
イメージの作成
ビルドできることを確認したので、 Dockerfile を作ってイメージ作成する。
mkdir -p ~/project/docker/jenkins-with-openjfx
cd ~/project/docker/jenkins-with-openjfx
gvim Dockerfile
■ Dockerfile
FROM jenkins
USER root
RUN apt -y update
RUN apt -y upgrade
RUN apt -y install openjfx
RUN apt-get clean
USER jenkins
そして、 jenkins-with-openjfx
という名前でビルドする。
docker build -t jenkins-with-openjfx .
で、 jenkins の docker-compose.yml をもとに、with openjfx のファイルを作る。
■ docker-compose.yml
version: '3'
services:
jenkins:
image: jenkins-with-openjfx
volumes:
- jenkins_home:/var/jenkins_home
ports:
- "8080:8080"
- "50000:50000"
environment:
- JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties"
entrypoint: ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
volumes:
jenkins_home:
external: true
これで、このディレクトリで docker-compose up -d jenkins
すれば、Yadome プロジェクトのビルドができるようになった。
※ 記事を修正するのが面倒なのでここには書いていないが、ビルド成果物に build/libs/*jar
を追加した。
作ったものは Github に上げた。
以上。