根据工作执行某些阶段

时间:2019-07-03 13:33:07

标签: jenkins-pipeline

根据詹金(Jenkin)的工作,我仍然对如何执行舞台感到困惑。

假设我创建了以下作业:

  • buildJob:这将只执行prepare + build阶段,当代码提交到git / svn中时触发
  • integrationJob:准备+构建+测试+部署到集成服务器中
  • stagingJob:构建+测试+部署到登台服务器
  • nexusJob:部署到nexus中
  • prodJob:根据用户的输入从nexus部署到生产服务器

这是Jenkins文件:

pipeline {
    agent any

    tools {
        maven 'maven.1.8.0' 
    }

    options {
        skipStagesAfterUnstable()
    }

    environment {
        INTEGRATION_URL = "https://"        
        NEXUS_URL = "https://"        
        STAGING_URL = "https://"        
        PROD_URL = "https://"        
    }   

    stages {
        stage('=== Prepare ...') {
            steps {
                echo 'git checkout master + git pull ...' 
            }
        }

        stage('=== Build ...') {
            steps {
                echo 'build ...'
                sh 'mvn clean compile'
            }
        }

        stage('=== Test ...') {
            steps {
                echo 'test ...'
                sh 'mvn clean verify'
           }
        }

        stage('=== Release to Nexus...') {
            steps {
                echo 'mvn release:prepare release:perform ...'
           }           
        }

        stage('=== Deploy to ...') {
            steps {
                echo 'Deploy ...'
           }           
        }
    }
}

解决方案之一是通过基于inout参数实现“何时”条件(我在某处看到了这一点)。但是,有没有人为输入的解决方案吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

管道脚本遵循groovy语法,您可以尝试使用if-else条件,在这种情况下,您可以为特定阶段执行传递条件。