Как я могу запустить сборку из jenkinsfile, используя синтаксис cron? - PullRequest
0 голосов
/ 07 апреля 2020

я использую стиль многоотраслевого jenkins, каждая ветка имеет свой собственный jenkinsfile, я добавил триггеры в jenkinsfile, но он ничего не вызывал в указанное время (8 вечера), я не уверен, что я что-то упустил

 agent {
    node {
      label 'master'
    }
  }

  triggers {
           cron(env.APP_NAME == 'DICTIONARY' ? '00 20 * * *' : '')
  }

  stages {
    stage('SCM Checkout') {
      steps {
        git(branch: 'test', url: 'https://gitlab.testral.ba/amramework.git', poll: true, credentialsId: 'GitlabCred')
      }
    }

1 Ответ

0 голосов
/ 08 апреля 2020

Чтобы зафиксировать изменение в cron, вам нужно один раз вручную запустить Jenkinsfile в правильной ветке . После этого, проверьте в «Просмотр конфигурации», что ваш cron успешно («Периодически собирать» должен быть проверен и содержать расписание).

Если это не так, возможно, во время оценки триггеров ваш env.APP_NAME отличается от 'DICTIONARY'.

Для отладки env вы можете добавить следующее:

println "env.APP_NAME is ${env.APP_NAME}" // will run before pipeline

pipeline { 
 agent {
    node {

В качестве дополнительного примечания рекомендуется использовать H вместо минут, поэтому не все почасовые сборки падают точно в час:

triggers {
           cron(env.APP_NAME == 'DICTIONARY' ? 'H 20 * * *' : '')
  }
...