簡體   English   中英

在 Jenkins 中使用多分支管道“定期構建”

[英]"Build Periodically" with a Multi-branch Pipeline in Jenkins

我正在使用 Pipeline 插件運行 Jenkins 2。 我已經設置了一個多分支管道項目,其中每個分支(master、develop 等)在根目錄中都有一個 Jenkinsfile。 設置起來很簡單。 但是,即使代碼沒有更改,我也不知道如何讓每個分支定期運行(而不是分支索引)。 我需要在我的 Jenkinsfile 中放入什么才能啟用定期構建?

如果您使用聲明式管道並且只想在特定分支上觸發構建,您可以執行以下操作:

String cron_string = BRANCH_NAME == "master" ? "@hourly" : ""

pipeline {
  agent none
  triggers { cron(cron_string) }
  stages {
    // do something
  }
}

Jenkins Jira上找到

如果您使用的是聲明式 Jenkinsfile,那么您可以使用triggers指令。

pipeline {
    agent any
    triggers {
        cron('H 4/* 0 0 1-5')
    }
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

我能夠找到一個例子來說明這個丟棄舊版本,這也是我想要的。

Jenkinsfile -infra/jenkins.io 中的 Jenkinsfile:

properties(
    [
        [
            $class: 'BuildDiscarderProperty',
            strategy: [$class: 'LogRotator', numToKeepStr: '10']
        ],
        pipelineTriggers([cron('H/30 * * * *')]),
    ]
)

這對我有用:

  triggers {
    cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '')
  }

在這篇文章中查看更多

對於參數化的定期運行或計划觸發器,可以使用如下。

triggers{
    parameterizedCron env.BRANCH_NAME == "develop" ? '''H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=vbox;VERSION=10.5.0.0
H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=workstation;VERSION=10.5.0.0''' : ""
}

我遇到了上述解決方案的問題。
我不是 Jenkins 向導,所以不確定我是否使用舊格式/語法或其他東西,但以下內容對我有用。

#!/usr/bin/env groovy
properties(
    [
        pipelineTriggers([
                [
                    $class: 'TimerTrigger',
                    spec: 'H 7,19 * * *'
                ]
         ])
    ]
)

確定自: https : //github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/triggers/TimerTrigger.java

我的 jenkinsfile 中有以下內容,但是每次我檢查 master 時它都在運行,並且它不是每周運行一次。 我在這里缺少什么?

pipeline
{
   agent any
   triggers {
      cron(‘0 0 * * 7’)
   }
 
   stages {
      stage (“Build and and copy binaries”) {
         when {branch ‘master’}
         {
             //steps, etc etc etc
         }
      }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM