如何在jenkinsfile中使用不同环境变量的管道中定期触发构建?

时间:2020-04-09 12:13:50

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我这里有一个管道,该管道针对具有特定环境变量并在特定时间触发的应用运行测试。

我想做的是使用相同的管道在不同的时间定期执行,但是每个构建都具有不同的环境变量。

这是我的jenkinsfile的示例,可以在特定时间仅在一组可用的环境下运行

pipeline {
  environment {
    mvnHome = tool name: 'myMvn', type: 'maven'
    mvnCMD = "${mvnHome}/bin/mvn"
    APP_NAME = 'test'
    APP_PACKAGE = 'test1'
    APP_ACTIVITY = 'test2'
  }

  agent {
    node {
      label 'master'
    }
  }

  triggers {
           cron('15 20 * * *')
  }

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

    stage('Testing') {
    steps {
      catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
        sh(label: 'Test Process', script: "${mvnCMD} test")
        }
      }
    }


  }


}

1 个答案:

答案 0 :(得分:0)

您可以使用 parameterized-scheduler插件。在Jenkins仪表板中,转到
Manage Jenkins -> Manage Plugins -> Parameterized Scheduler

要在需要使用不同环境的不同时间安排作业,您必须使用parameterized-scheduler插件。

参数1

H/20 * * * * %Parameter1,其中Parameter1是您想要的特定时间的环境变量。

Parameter2

H/30 * * * * %Parameter2,其中Parameter2是您想要的特定时间的不同环境变量。

应该已经设置好参数,以使parameterized-scheduler插件正常工作。它只能用于带有参数的作业。 请记住,必须已设置参数,因为该插件仅对具有参数的作业可见。 See more documentation including usage examples in the README