参数化调度程序在脚本化管道中的用法

时间:2019-03-04 12:53:04

标签: jenkins cron jenkins-pipeline

我有一个参数化的版本,在脚本管道中对此进行了描述。

我想使用插件按时间表运行并使用覆盖参数:

https://github.com/jenkinsci/parameterized-scheduler-plugin

我看到了在声明式管道中使用它的示例:

triggers {
        cron('* * * * *')
        parameterizedCron('''
*/2 * * * * %GREETING=Hola;PLANET=Pluto
*/3 * * * * %PLANET=Mars
        ''')
    }

这是我在脚本中尝试使用它的方式:

properties([
    disableConcurrentBuilds(),
    parameters(
        buildParameters()
    ),
    pipelineTriggers(
        [
            parameterizedCron('00 06 * * 1-5 %geb.env.browserName=chrome')
        ]
    )
])

但是似乎没有任何异常或警告就跳过了此触发器。该构建不会在该时间开始。在脚本化管道中进行设置的正确方法是什么?

我还想在以后的阶段中确定构建是通过调度程序还是手动触发的?有没有办法做到这一点? 例如。如果确实打印出类似"Triggered by CRON with parameters ${printenv}"的东西。

谢谢!

2 个答案:

答案 0 :(得分:0)

因此,由于某种原因,如果没有詹金斯重启,这将无法正常工作。 这些步骤解决了该问题:

  1. 开始新的版本以获得最新的脚本。
  2. 重启jenkins:>服务jenkins重新启动

答案 1 :(得分:0)

我还需要使用parameterizedCron。我的情况的不同之处在于,我需要两种不同的时间表,并且弄清楚正确的语法有点棘手。在可行的解决方案下方发布信息,希望为您节省一些时间

 Stack( // remove SingleChildScrollView
  children: <Widget>[
    Column(
      children: <Widget>[
        Expanded( // use Expanded
          child: TabBarView(
            children: [
              FlutterLogo(colors: Colors.orange),
              FlutterLogo(colors: Colors.red),
            ],
          ),
        ),
        SizedBox(height: 50),
        FlutterLogo(size: 100),
        SizedBox(height: 100),
        FlutterLogo(size: 100),
      ],
    ),
  ],
)