Как определить триггер сборки jenkins в jenkinsfile, чтобы начать сборку после другой работы
Я хотел бы определить триггер сборки в моем Jenkinsfile
, Я знаю, как это сделать для BuildDiscarderProperty:
properties([[$class: 'jenkins.model.BuildDiscarderProperty', strategy: [$class: 'LogRotator', numToKeepStr: '50', artifactNumToKeepStr: '20']]])
Как я могу установить триггер сборки, который запускает работу, когда другой проект был построен. Я не могу найти подходящую запись в документации по API Java.
Изменить: мое решение заключается в использовании следующего кода:
stage('Build Agent'){
if (env.BRANCH_NAME == 'develop') {
try {
// try to start subsequent job, but don't wait for it to finish
build job: '../Agent/develop', wait: false
} catch(Exception ex) {
echo "An error occurred while building the agent."
}
}
if (env.BRANCH_NAME == 'master') {
// start subsequent job and wait for it to finish
build '../Agent/master', wait: true
}
}
2 ответа
Я просто искал то же самое и нашел это Jenkinsfile
в jenkins-infra / jenkins.io
Короче:
properties([
pipelineTriggers([cron('H/30 * * * *')])
])
Вот пример:
#Project test1
pipeline {
agent {
any
}
stages {
stage('hello') {
steps {
container('dind') {
sh """
echo "Hello world!"
"""
}
}
}
}
post {
success{
build propagate: false, job: 'test2'
}
}
}
post {} будет выполнен, когда проект test1 будет построен, а код внутри
success{} будет выполняться только в случае успешного завершения проекта test1.
распространение сборки: false, задание: 'test2' вызовет проект test2.
propogate: false гарантирует, что проект test1 не будет ждать завершения проекта test2, а просто вызовет его.