概要
色々な事情でリポジトリの設定をいじることができない時に
Gitのpost-commitを使いローカルのJenkinsで自動テストする方法。
ローカルでJenkinsを起動する
Dockerを使うと楽に構築できる。
Jenkinsの設定方法など一般的なことに関しては別のページ参照。
ローカル用Jenkinsのdocker-compose
ポイントは2つ。
- ローカルのGitフォルダからcloneを許可するために、JAVA_OPTSを設定すること
- ローカルファイルを見えるようにするためvolumesでマウントすること
ここでは/local/gitrepo/
にあると仮定してコンテナの/home/repo
にマウントしている。
docker-compose.yml
version: "3"
services:
jenkins:
container_name: jenkins
image: jenkins/jenkins:latest
environment:
JAVA_OPTS: -Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true
ports:
- 8888:8080
volumes:
- ./jenkins_home:/var/jenkins_home
- /local/gitrepo/:/home/repo
Jenkinsの設定
- リポジトリのURLにはパスを書けばOK
- 認証トークンを設定しておく
post-commitに仕込む
- ポート番号はdocker-composeで設定したもの
- token=の後ろは上記で設定した認証トークン
#!/bin/sh
wget -O - http://localhost:8888/job/Test/build?token=abcde
参考