Jenkins管道实用程序步骤-zip zipFile

Jenkins管道实用程序步骤-zip zipFile,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试使用管道脚本压缩创建为jenkins管道作业输出的文件夹。通过谷歌搜索,我认识了詹金斯一家 管道实用程序步骤-zip zipFile 要压缩文件夹/文件,但无法获取要压缩的确切管道语法 在我的工作区中,我有一个名为“Test”的文件夹,其中有两个子文件夹“Test1”、“Test2”。每个子文件夹都有.dll文件。所以,我想压缩整个“测试”文件夹和所有子文件夹 节点(Jenkinks_1) { 回声“ZIP” zip zipFile:'Test.zip',dir:'C:\\worksp

我正在尝试使用管道脚本压缩创建为jenkins管道作业输出的文件夹。通过谷歌搜索,我认识了詹金斯一家

管道实用程序步骤-zip zipFile

要压缩文件夹/文件,但无法获取要压缩的确切管道语法

在我的工作区中,我有一个名为“Test”的文件夹,其中有两个子文件夹“Test1”、“Test2”。每个子文件夹都有.dll文件。所以,我想压缩整个“测试”文件夹和所有子文件夹

节点(Jenkinks_1)
{
回声“ZIP”
zip zipFile:'Test.zip',dir:'C:\\workspace\\Build\u Sample\\Test'
回声“结束-压缩”
}
以下是Jenkins的控制台输出:

Started by user XXXXX
[Pipeline] node
Running on Jenkinks_1 in C:\workspace\Build_Sample
[Pipeline] {
[Pipeline] echo
ZIP
[Pipeline] echo
END - ZIP
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
正在寻找一些使用管道语法压缩文件夹的指南。感谢您的投入


我想压缩一些文件作为jenkins管道作业的输出

首先,分阶段和步骤尝试相同的操作:

它用于记录结果

如果使用绝对路径现在起作用,请尝试使用相对路径(
“…”

如所示,
zip zipFile
是的一部分,需要。
见“”


关于用于多标准文件选择的语法,请注意:“使用glob-ant样式语法”…
不过,他用一个基本的语法让它工作起来。
例如

但是,如中所述,意味着您需要将
zip
替换为:

                 script{ zip zipFile: 'test.zip', archive: false, dir: 'archive' }

这意味着您需要使用
脚本
块。

在安装
管道实用程序步骤
插件后能够压缩。

您只需使用sh即可(jenkins server需要安装Zip)

像这样的管道脚本

node {
    stage('Clean'){
        cleanWs()
    }
    stage('Checkout') {
       git branch: 'develop', url: 'ssh://user@ip:29418/prj.git'
    }
    stage('Zip') {
        dir('algo-python') {
            sh '''
            zip -r  algo.zip algo
            '''
       }
    }
    stage('Upload zip'){
        dir('algo-python') {
            sh '''
                source /etc/profile
                export HADOOP_USER_NAME=dev
                hdfs dfs -put -f algo.zip /user/dev/zipfile/
            '''
        }
    }
}

我遇到这个是因为zip。。。主机上未安装。
自我提醒:如果您需要zip,请先安装它。


sudo-yum-install-zip

感谢您的回复。我希望使用管道实用程序步骤-zip zipFile使用管道脚本而不是声明性语法。我确实试过上面的脚本。。但是生成失败,并显示以下错误消息:org.codehaus.groovy.control.multipleCompileOnErrorsException:启动失败:WorkflowScript:8:无效参数“zipFile”,您的意思是“label”?@第8行第21栏。zip zipFile:'test.zip',archive:false,dir:'archive'^WorkflowScript:8:无效参数“archive”,您的意思是“url”?@第8行第42栏。zip zipFile:'test.zip',存档:f^WorkflowScript:8:无效参数“dir”,您的意思是“url”?@第8行第58列:test.zip',archive:false,dir:'arch为什么使用
archiveArtifacts
?在zip步骤中使用
archive:true
时,您可以直接归档创建的zipfile。@IVleafclover我相信(2年后,它有点模糊),这是为了让工件可以下载,如中所述。zipFile只是一个zip,archiveArtifacts是Jenkins内置的存储“工件”的支持,这对于通过管道使它们可用非常重要。@VonC感谢您的回答
zip-zipFile:'test.zip',archive:true,dir:'archive'
将压缩并归档Jenkins工件中的zip文件。这样就不必使用
archiveArtifacts
命令。不管你的原始答案是否有效,在你的原始答案发布两年后,我的评论往往与你的原始答案无关。有趣的是,仅仅因为插件没有安装,它就不起作用了?是的,在安装管道实用程序步骤之后,插件Zip命令起作用了。好的,我已经相应地完成了我的答案,并提供了一些链接。
                 script{ zip zipFile: 'test.zip', archive: false, dir: 'archive' }
 sh '''
            zip -r  algo.zip algo
 '''
node {
    stage('Clean'){
        cleanWs()
    }
    stage('Checkout') {
       git branch: 'develop', url: 'ssh://user@ip:29418/prj.git'
    }
    stage('Zip') {
        dir('algo-python') {
            sh '''
            zip -r  algo.zip algo
            '''
       }
    }
    stage('Upload zip'){
        dir('algo-python') {
            sh '''
                source /etc/profile
                export HADOOP_USER_NAME=dev
                hdfs dfs -put -f algo.zip /user/dev/zipfile/
            '''
        }
    }
}