プラグインがインストールされている状態での設定方法。設定方法がよく変わるらしく悩んだので記録する。
Gitlab から Jenkins にビルド開始を伝える Jenkins CI service
- Gitlab の該当のプロジェクトから Settings > Integrations
- Project services > Jenkins CI
- Active: チェック
- Trigger: 必要な物をチェック
- Jenkins url: もしも Jenkins の URL が https://example.com/job/Group/job/Project/job/tool/ だったら、
https://example.com/
の部分 - Project name: もしも Jenkins の URL が https://example.com/job/Group/job/Project/job/tool/ だったら、
Group/Project/tool
のように job を除いた名前
Jenkins から Gitlab にビルド完了を伝える
Gitlab の Jenkins CI service のドキュメントには、あたかも Gitlab 側で設定するだけで Gitlab pipeline との連携が出来る かのように書いてあるが嘘だった。Gitlab pipeline と連携するには以下のように Jenkins ファイルの適当な位置に適当なコマンドを入れる必要がある。ざっくり書くとこんな感じだった。
pipeline {
agent any
options {
gitLabConnection('Your GitLab Connection')
}
stages {
stage('build') {
steps {
updateGitlabCommitStatus name: 'build', state: 'running'
hogehoge
}
}
}
post {
success {
updateGitlabCommitStatus name: 'build', state: 'success'
}
failure {
updateGitlabCommitStatus name: 'build', state: 'failed'
}
}
}
- gitLabConnection とは、GitLab との接続を表す名前。権限によっては一般ユーザには見えないが、ビルドしたブランチに行って View Configuration > General > GitLab Connection で見ることが出来る。
- updateGitlabCommitStatus
- name:
build
など適当な名前 - state:
pending
,running
,canceled
,success
,failed
のどれか
- name: