当前位置: 首页 > 知识库问答 >
问题:

詹金斯管道实用程序步骤- zip压缩文件

孔鸿哲
2023-03-14

我正在尝试使用管道脚本压缩作为jenkins管道作业输出创建的文件夹。通过谷歌搜索,我知道了Jenkins

管道实用程序步骤-zip zip文件

https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#code-zip-code-create-zip-file 压缩文件夹/文件,但无法获取要 zip 的确切管道语法。

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

node(Jenkinks_1)
{
    echo "ZIP"
    zip zipFile: 'Test.zip', dir:'C:\\workspace\\Build_Sample\\Test'
    echo "END - ZIP"
}

以下是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

寻找一些使用管道语法压缩文件夹的指导。感谢您的参与。

我想压缩一些文件作为我的詹金斯管道工作的输出

共有3个答案

宓弘壮
2023-03-14

我遇到这个问题是因为主机上没有安装zip。
提醒自己:如果你需要zip,请先安装它。sudo yum install zip

郝乐心
2023-03-14

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

翟光赫
2023-03-14

首先,分阶段逐步尝试相同的操作,如下所示:

pipeline {
    agent any
    stages {
        stage ('push artifact') {
            steps {
                sh 'mkdir archive'
                sh 'echo test > archive/test.txt'
                zip zipFile: 'test.zip', archive: false, dir: 'archive'
                archiveArtifacts artifacts: 'test.zip', fingerprint: true
            }
        }
        ...
    }

它使用归档工件来记录结果。

如果现在可以使用绝对路径,请尝试使用相对路径('..'

正如OP Sri所看到的,zipzipFile是JENKINS Pipeline Utility Steps插件的一部分,需要它
请参阅“实施的步骤”。

关于用于多标准文件选择的语法,NicolasW在注释中指出,文档是模糊的:“使用全局蚂蚁风格的语法”...< br >但是他用一个基本的coma分隔语法让它工作了。< br >例如

zip zipFile: 'test.zip', archive: false, glob: 'config-/**/,scripts/**/*.*

但是,正如Tanvir在评论中指出的那样,问题44078意味着您需要将zip替换为:

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

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

 类似资料:
  • 问题内容: 我有一个在我的jenkinsfile中使用的类,这里是其简化版本: 我提供的詹金斯在jenkinsfile使用时参数。在这里模拟具有脚本和sh的jenkins对象的最佳方法是什么?谢谢你的帮助 问题答案: 前一周我遇到了类似的问题,我想到了: 并与您的脚本一起使用(以未命名的sh调用扩展): 它输出: 现在,它本身并不是很有用,但是很容易添加定义模拟方法行为的逻辑,例如,此版本根据要读

  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

  • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

  • 问题内容: 我们有几个Java项目。每个项目都有自己的交付管道。 所有管道都具有以下共同的步骤(简化): 建立项目 发布项目 部署到测试环境 部署到生产环境 项目管道仅在项目特定的属性(例如服务名称或测试和生产环境的IP地址)上有所不同。 问题是:我们如何避免所有项目都有共同之处?Jenkins的“管道作为代码”是否提供类似管道模板的内容? 我可以想象一个模板将在我们的项目管道中节省很多冗余代码/

  • 问题内容: 我试图在使用相关内部文件夹的符号链接进行归档之前,将结果目录展平,该链接首先遍历在运行时确定的一堆变量路径名。我从SO答案中选择的命令替换方法似乎不太正确。 问题:是否有一条规则,如何正确地从我不知道的Jenkins管道步骤中转义命令替换链? 管道脚本片段 控制台输出 我在尝试时看到类似的失败 管道脚本片段 控制台输出 问题答案: 解决这个问题的几个有趣策略 将长脚本分解为具有返回值的

  • 问题内容: 我有一个Jenkinsfile脚本,该脚本测试执行SVN合并的可能性,然后向用户询问提交合并的权限。 我想知道回答“输入”步骤的用户名,以便将其写入提交消息中。 这有可能吗? 假设我想这样做: 问题答案: 该步骤具有一个可选的,它允许指定返回的键,该键应包含提交输入对话框的用户: 如果指定,则这是返回值的名称,该值将包含批准此输入的用户的ID。 返回值将以类似于该值的方式进行处理。 类