Как определить триггер сборки 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, а просто вызовет его.

Другие вопросы по тегам