在构建后操作中查找工件

时间:2020-02-24 11:41:53

标签: jenkins jenkins-plugins

简而言之:

如何在生成或生成后操作中启动的Shell脚本中访问生成的工件的位置?

更长的故事:

我正在尝试设置一个詹金斯工作来自动化debian软件包的构建和传播。 到目前为止,我已经成功地使用debian-pbuilder plugin来执行构建过程,以使jenkins在成功完成工作之后呈现出最终的工件:

mypackage_1+020200224114528.NOREV.4_all.deb
mypackage_1+020200224114528.NOREV.4_amd64.buildinfo
mypackage_1+020200224114528.NOREV.4_amd64.changes
mypackage_1+020200224114528.NOREV.4.dsc
mypackage_1+020200224114528.NOREV.4.tar.xz

现在,我还想将部署过程自动化到本地reprepro存储库中,实际上,我将它们汇总在一起仅需要简单的shell脚本调用。

我的问题:我无法确定要对该部署脚本进行操作的工件位置。 “ debian-pbuilder”插件会在临时目录($ WORKSPACE / binaries.tmp15567690749093469469649)中生成工件,该目录随每次构建而变化。

由于在完成的作业状态视图中正确列出了工件,因此我希望将工件详细信息提供给脚本(例如,通过环境变量)。但是,事实并非如此。 我已经在广泛地寻找解决方案,但是没有发现任何帮助。 或者是我(在詹金斯还是个菜鸟),在这里采取了疯狂的做法?

1 个答案:

答案 0 :(得分:0)

您可以使用archiveArtifacts。您在工作区中拥有binaries.tmp目录,并且可以使用它,但是在使用deleteDir()执行清除工作区之前。

管道示例:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                deleteDir()
                ...
            }
        }
    }

    post {
        always {
            archiveArtifacts artifacts: 'binaries*/**', fingerprint: true
        }
    }
}

您还可以选中https://plugins.jenkins.io/copyartifact/

相关问题