相关疑难解决方法(0)

Jenkinsfile - Script Pipeline语法中的条件阶段执行

我们正在使用Script Pipeline语法,Jenkinsfile它有很多阶段定义来构建和部署我们的代码.我有一个用例,如果我正在进行完整构建,我想运行所有阶段,但如果我需要执行一些AWS路由,则只运行一个特定阶段.我知道我可以使用if(<expression>)跳过舞台或跑舞台.问题是我不想将这个if条件应用到我的每个阶段Jenkinsfile.

在新的Declarative Pipeline语法中,使用该stage..when选项很容易实现.我们的基础结构中使用了很多自定义Groovy辅助函数,所以此时我无法从Script Pipeline语法切换到新的Declarative Pipeline语法.我最终在现有Jenkinsfile的东西上做的是这样的......

原来詹金斯文件

  stage('Checkout Code') {}
  stage('Build') {}
  parallel(
    stage('Sonar Analysis') {}
    stage('CLM Analysis') {}
    stage('Security Analysis') {}
  )
  stage('Build Docker Image') {}
  ...
  ...
  stage('QA Deploy') {}
  stage('QA Routing') {}
  ...
  ...
  stage('Prod Deploy') {}
  stage('Prod Routing') {}
Run Code Online (Sandbox Code Playgroud)

变成

  if (fullDeploy){
    stage('Full Build') {
        stage('Checkout Code') {}
        stage('Build') {}
        parallel(
          stage('Sonar Analysis') {} …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

groovy ×1

jenkins ×1

jenkins-pipeline ×1