有时jenkins pipeline需要在不同的agent上执行不同的操作,同时需要在不同的agent之间传递文件。方法如下:

stage('上传文件') {
    agent 'label A'
    steps {
        script {
            def uploadedFile = input(id: 'userInput', message: '请上传文件', parameters: [file(name: '上传文件', description: '请选择要上传的文件')])

            // 打包上传的文件并存储到名为"myStash"的存储区中
            stash(name: 'myStash', includes: uploadedFile)
        }
    }
}


stage('复制文件') {
    agent 'label B'
    steps {
        // 从名为"myStash"的存储区中解包文件到工作区
        unstash('myStash')
        
        // 复制解包后的文件到工作区目录
        sh "cp ${uploadedFile} ${env.WORKSPACE}"
    }
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建,欢迎商务合作。wx: diudiu5555

更多推荐