一个job里可以中途创建一个变量传递个下一个job吗

问个问题,jenkins job里可以中途创建一个变量,然后参数化构建下一个job吗(下一个job是参数化的)
我的主要需求场景是job1 中间自动产生的一个数据,希望赋给一个变量,然后将这个字符串变量传递给下一个job。有一个现成可行的方案是通过curl 传递给下一个job并带上参数,但是如果我希望使用Jenkins 里自带的参数化构建下一个job的步骤,怎么来实现呢

这里给出一个通过流水线可以实现的方案:

流水线1,名称为abc

pipeline {
    agent {
        label 'master'
    }
    
    environment {
      name = "default"
    }
    
    stages {
        stage('one') {
            steps {
                echo 'one'
                script {
                    env.name = "one"
                }
            }
        }
        stage('two') {
            steps {
                build job: 'def', parameters: [string(name: 'name', value: env.name)]
            }
        }
    }
}

流水线2,名称为def

pipeline {
    agent {
        label 'master'
    }
    
    parameters {
      string defaultValue: 'jack', description: '', name: 'name', trim: false
    }
    
    stages {
        stage ('one') {
            steps {
                echo params.name
            }
        }
    }
}

本方案中对流水线插件的依赖,可以通过下面的命令来安装:
jcli plugin install workflow-aggregator

1赞

回答很有用
多谢答复,辛苦了

紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁

再问您一个问题,一个job中是否可以修改入参呢,比如我有一个job,有一个入参,输入字符串是apple
执行了如下pipeline脚本

pipeline {
    agent none
    stages {
        stage('log') {
            agent {
                label 'node1'
            }
            steps {
                bat script: '''
                echo %app%
                set app=123
                echo %app%'''
                sh 'echo $app'
            }
        }
    }
}

结果显示只有在批处理部分将app参数设置为123后才能生效一会儿
到了bash部分又回到了输入值apple
是否可以实现中间某个步骤修改值,后续的步骤都采用新的值呢