아래 스펙의 jenkins를 설치하는것을 목적으로 합니다.
2. Install github authentication plugin
(미작성)
위의 사항을 테스트해보기위해, Jenkinsfile을 아래와 같이 두고 tag를 push해봅니다.
when { tag '*' }
아래부분을 추가로 수행시키는것입니다.#!/usr/bin/env groovy
pipeline {
agent {
docker { image 'centos/python-36-centos7:1' }
}
stages {
stage('printenv') {
steps {
sh 'printenv'
sh 'python --version'
}
}
stage('minimal test') {
steps {
echo 'minimal test'
}
}
stage('full test') {
when { anyOf { branch 'master'; branch 'PR-*' } }
steps {
echo 'full test'
}
}
stage('deploy') {
when { tag '*' }
steps {
echo 'deploy'
}
}
}
post {
always {
echo 'done...'
}
success {
echo 'success'
}
failure {
echo 'failure'
}
}
}
tag push
push 결과로 Jenkins 작업이 돌아가지 않습니다.
의도대로라면 아래의 캡쳐처럼 tag branch의 job이 돌아가야합니다.
Plugin issue를 찾아보니, tags에 의해 빌드가 일어나지않는것이 의도된 설계라고합니다.
Ref: No automatic builds for tags - Pileline: Organization, Multibranch
이는 최초 jenknis 가 오래된 tag를 모두 빌드해버리면서, CI 서버에 부하가 걸리는것을 방지하는 설계입니다.
이를 해결하기위해서는 build strategy plugin 설정이 필요합니다.
Ref: https://wiki.jenkins.io/display/JENKINS/GitHub+Branch+Source+Plugin
ignore tags older than - 7
옵션은 생성된지 7일이 지난 tag는 최초 tag indexing 단계에서 job을 일으키지 않는다는 옵션입니다.