当前位置: 首页 > 面试题库 >

Jenkins管道,如何将工件从以前的版本复制到当前版本?

江向阳
2023-03-14
问题内容

在Jenkins Pipeline中,如何将工件从先前的版本复制到当前的版本?即使以前的构建失败,我也想这样做。


问题答案:

Stuart Rowe还在管道制作Sig
Gitter频道
上向我推荐了我查看“复制工件插件”的方法,但也给了我一些要使用的Jenkins
Pipeline语法
示例。

根据他给出的建议,我想到了一个更完整的Pipeline示例,该示例将工件从先前的构建复制到当前的构建中,而不管先前的构建是成功还是失败。

pipeline {
    agent any;

    stages {
        stage("Zeroth stage") {
            steps {
                script {
                    if (currentBuild.previousBuild) {
                        try {
                            copyArtifacts(projectName: currentBuild.projectName,
                                          selector: specific("${currentBuild.previousBuild.number}"))
                            def previousFile = readFile(file: "usefulfile.txt")
                            echo("The current build is ${currentBuild.number}")
                            echo("The previous build artifact was: ${previousFile}")
                        } catch(err) {
                            // ignore error
                        }
                    }
                }
            }
        }

        stage("First stage") {
            steps {
                echo("Hello")
                writeFile(file: "usefulfile.txt", text: "This file ${env.BUILD_NUMBER} is useful, need to archive it.")
                archiveArtifacts(artifacts: 'usefulfile.txt')
            }
        }

        stage("Error") {
            steps {
                error("Failed")
            }
        }
    }
}


 类似资料:
  • 问题内容: 我在Jenkinsfile中遇到Jenkins管道的问题。我的Jenkins实例上有4个不同的nodeJs版本。我想选择要在管道中使用的那个,但是官方插件示例(https://wiki.jenkins- ci.org/display/JENKINS/NodeJS+Plugin )根本不起作用。 我尝试了第一种方法,但由于$ PATH被该部分覆盖而失败。 我尝试了第二种方法,但失败了,因

  • 我是詹金的新手,我在比特桶里有4个回购,比如甲、乙、丙、丁。我必须去拿甲、乙 在Jenkinsfile中添加了上面的脚本,我将其放在repo中。 现在,我已经创建了一个多分支管道来获取所有和分支内的源- 我在源代码管理方面创造了自由式的新工作- 任何帮助都很感激。

  • 我试图使用Groovy管道脚本获取Jenkins构建的当前工作区: 它返回:

  • 因为classbe依赖于cupergino_icons>=1.0.1需要SDK版本>=2.12.0-0<3.0.0,所以版本解决失败。在Classbe中运行“Flutter pub Get”...pub get失败(1;因为classbe依赖于cuperistino_icons>=1.0.1需要SDK版本>

  • 我从Jenkins管道开始,我想从任何jenkins目录外部复制一些视频文件到我的作业工作区目录。我正在使用文件操作插件为我的其他作业执行一些文件操作。有了这个插件,我可以将文件从我的工作区内部复制到外部: 例如,通过这一步,我可以将位于我的工作区中的4个视频文件复制到位于另一个磁盘中的上述目录中。 但我想做相反的事。我想将视频文件从另一个磁盘的源目录复制到工作区。我尝试了几种方法,但似乎“inc

  • 我正在尝试使用 Jenkinsfile 实现一个新的 Jenkins 管道。 GIT存储库并没有在每个分支上都有一个Jenkinsfile,只是在一个特定的分支下(因为我目前正在为一个遗留存储库构建CI)。 Jenkins管道是使用以下配置创建的: 丢弃旧版本(我不想手动清理) Bitbucket webhook trigger (on push event) 来自 SCM 的管道脚本 Bitbu