在 jenkins 中创建存档工件的 zip

Posted

技术标签:

【中文标题】在 jenkins 中创建存档工件的 zip【英文标题】:Create a zip of archived artifacts in jenkins 【发布时间】:2018-11-05 11:03:14 【问题描述】:

我有一个在 Windows slave 上运行的 jenkins 中的 MSbuild 作业。主服务器是 linux 服务器。当构建成功运行时,我正在归档在 linux 主服务器上执行的工件。现在我想创建这个存档工件的 zip。我该怎么做,因为我的奴隶是 Windows 奴隶?

【问题讨论】:

【参考方案1】:

您可以指定每个作业的不同部分在特定节点上完成。在您的工作的 Windows 部分完成后,在您的管道脚本(假设它是 groovy)中,添加另一个带有标签“master”的“node”部分:

node('master')

Jenkins 将工件存储在以下位置:

$JENKINS_HOME/jobs//builds//存档

您可以 cd 到该目录,然后执行 zip 命令

zip -r name_of_zip_file ./*

您应该能够在您的 groovy 脚本中添加类似以下 sn-p 的内容:

node('master')

    stage ("Zip Artifacts")

    sh '''
    cd $JENKINS_HOME/jobs/<job>/builds/<build>/archive
    zip -r name_of_zip_file ./*
    '''
 

【讨论】:

没有作业在主节点上构建。此作业正在 Windows 从站上运行。所以在归档工件后,当我尝试创建一个 zip 文件时,它会在 windows slave 上执行并给出错误,因为工件需要压缩存在于主节点上。

以上是关于在 jenkins 中创建存档工件的 zip的主要内容,如果未能解决你的问题,请参考以下文章

jenkins - 存档工件'*'不匹配任何东西

重命名存档工件的容器

Jenkins存档单个文件不起作用

Jenkins QA部署

在 Jenkins 中执行 Artifacts 时存档文件压缩

在 Jenkins Artifacts 中仅归档 aspx 页面