1

我正在尝试创建一个管道,其中有多个触发器 - cron、拉取请求打开和手动。因此,我想相应地可视化它。

这是我没有应用触发器的代码。

pipeline {
    agent any
    environment {
        CI = 'true'
        TRIGGER = 'PULL_REQUEST'
    }
    stages {
        stage('Trigger')
        {
            parallel{

                stage('Daily') {
                     when {
                          environment name: 'TRIGGER', value: 'DAILY' 
                     }
                     steps {
                           sh 'echo "daily build"'
                     }
                }
                stage('Pull Request') {
                     when {
                          environment name: 'TRIGGER', value: 'PULL_REQUEST' 
                     }
                     steps {
                           sh 'echo "pull request trigger"'
                     }
                }
                stage('Manual') {
                     when {
                          environment name: 'TRIGGER', value: 'MANUAL' 
                     }
                     steps {
                           sh 'echo "Manual"'
                     }
                }
            }
        }
        stage('Build') {
            steps {
                sh 'echo "build step"'
            }
        }
        stage('Test') {
            steps {
                sh 'echo "test step"'
            }
        }
        stage('Deliver for development') {
            when {
                environment name: 'CI', value: 'true' 
            }
            steps {
                sh 'echo "delivery for development"'
                input message: 'Finished using the web site? (Click "Proceed" to continue)'
                sh 'echo proceeded'
            }
        }
        stage('Deploy for production') {
            when {
                environment name: 'CI', value: 'false'  
            }
            steps {
                sh 'echo "deploy for production"'
                input message: 'Finished using the web site? (Click "Proceed" to continue)'
                sh 'echo proceeded'
            }
        }
    }
}

我可以用上面的代码实现这一点: 在此处输入图像描述

现在,我的目标是将触发器置于这些并行阶段——每日、拉取请求和手动。但是,我无法这样做,trigger对于完整的管道也是如此,并且可能预计只会在管道中出现一次。我怎样才能达到这个效果?

这 3 个并行触发器将设置一些环境变量,这些环境变量将在进一步的阶段中使用,以相应地修改管道流,具体取决于触发器的类型。

4

0 回答 0