todo

private docker registry のイメージ管理を行いたいので自前でイメージ管理スクリプトの作成
-> とりあえず作った 要python3 オレオレ仕様
https://github.com/mokemoke88/docker_reg_helper

自前ビルドしたDockerイメージを、registryに登録する際の手順を考える

今の所の想定
手元でビルド -> <image名>:build(local)

Jenkins で ビルド ( master or releaseブランチは自動ビルド対象から外しておく)
<registryパス>/<image名>:gitブランチ名 を registryからpull
<image名>:gitブランチ名-日付-ビルド番号 でビルド
<registryパス>/<image名>:gitブランチ名 でtaggingして、registryへpush

最終成果物は個別で作成
git にtagging (0.0.1 とか)
<registryパス>/<image名>:latest を registry から pull
<image名>:release-日付-ビルド番号 でビルド
<registryパス>/<image名>:<gitのtag> で tagging して、registryへpush
<registryパス>/<image名>:latest でtagging して、registryへpush

ゴミがいっぱい残りそうなのと、最終成果物の生成がうまくいきそうになくて、もやもやする。

Declarative Pipeline で 自動Checkoutしたブランチ名を取得する

取得した値は環境変数 BUILD_BRANCH に登録する.

Jenkinsの設定画面

pipeline の場合

SCMの追加処理で “specific local branch” を追加する.

multi branch pipeline で Branch Sources に GitHubを使用している場合

Additional で “Check out to matching local branch” を追加する.

Jenkinsfile

最初のstageとして以下を追加

stage('pre setup'){
  steps{
    script{
      env.BUILD_BRANCH = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref @').trim()
    }
  }
}

続きを読む Declarative Pipeline で 自動Checkoutしたブランチ名を取得する