Я использую декларативный Jenkinsfile для многоотраслевого конвейера, как показано здесь. SCM настроен на опрос каждые 5 минут.
pipeline {
agent none
stages {
stage('Build Jar') {
agent {
docker {
image 'maven:3.6.0-jdk-11'
args '-v $HOME/.m2:/root/.m2'
}
}
steps {
sh 'mvn clean package release:clean release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true" -DscmCommentPrefix="[skip ci]"'
}
}
stage('Build Image') {
steps {
script {
app = docker.build("myname/myimage")
}
}
}
//other stages here
}
Проблема:
релиз maven фиксирует изменения в репо, которые запускают другую сборку. Так что это срабатывает бесконечно. Я наткнулся на этот плагин SCM Skip.
scmSkip(deleteBuild: true, skipPattern:'.*\\[skip ci\\].*')
Но, к сожалению, для запуска нужен агент !!
Я тоже пытался с помощью агента any. неудачно.
pipeline {
agent any
stages {
stage('SCM Check') {
steps {
scmSkip(deleteBuild: true, skipPattern:'.*\\[skip ci\\].*')
}
}
stage('Build Jar') {
steps {
sh 'mvn clean package release:clean release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true" -DscmCommentPrefix="[skip ci]"'
}
}
stage('Build Image') {
steps {
script {
app = docker.build("myname/myimage")
}
}
}
//other stages here
}
Как вы, ребята, пропускаете сборку определенных сообщений?