【问题标题】:How can I get TeamCity to zip a zip file如何让 TeamCity 压缩 zip 文件
【发布时间】:2016-01-29 10:34:33
【问题描述】:

我的问题:我在 TeamCity 上构建了一个 zip 文件:Files.zip 它包含很多文件,一个 zip 文件是一个很好的文件容器。

遗憾的是,由于遗留原因,该 zip 文件的标题中没有版本号。我希望它有一个版本号。 像这样:Files.1.2.3.4.zip

我想也许我可以创建一个包含的 zip,我可以用一个版本号来装饰它,就像这样:ContainingZip.1.2.3.4.zip!Files.zip 这样 Files.zip 被压缩到另一个 zip 中! (疯狂)。

但我不知道如何通过 TeamCity 及其工件路径来做到这一点?

我觉得应该起作用的是: /**/. => Files.Zip => ContainingZip.1.2.3.4.zip!Files.zip 但这只是使 Files.Zip

将其分为两个步骤,但效果不大: /**/. => 文件.Zip Files.Zip => 包含Zip.1.2.3.4.zip 这也不起作用,因为完成工件存在检查后 Files.zip 不存在。

有人知道怎么做吗? (或者我必须在构建步骤中预压缩?)

谢谢。

【问题讨论】:

  • 版本号值从何而来?
  • 谁创建了Files.zip?您的构建步骤,还是 /**/. => Files.Zip 工件规则?
  • 工件规则。我们目前有“/**/. => Files.Zip”。但请注意,Files.zip 是我们需要的名称和格式,只是我想再次将其压缩成版本化的 zip 文件。
  • 您可以重写命令行(windows 的 powershell)脚本来重命名 zip 文件。你真的需要压缩一个zip文件吗?如果你这样做了,一个更好的选择是将它 tar 起来
  • 去皮重对我有什么好处? (我们所有的系统都是 Windows 仅供参考)。

标签: zip teamcity


【解决方案1】:

Answer:TeamCity 不会让您在工件窗口中双拉链。您必须使用构建步骤。

你能做什么...

如果您拥有 PowerShell 5+,则可以通过 PowerShell 构建步骤使用 Compress-Archive。 或者这里有很好的信息 http://stackoverflow.com/questions/1153126/how-to-create-a-zip-archive-with-powershell 对于旧 PowerShell 版本。

通过 Ant 构建步骤:

<?xml version="1.0" encoding="UTF-8"?>
<project name="zipper" default="zip" basedir=".">

<property name="project-name" value="Files.zip" />
<property name="folder-to-zip" value="./FolderToZip/" />

<target name="zip">
<delete file="${project-name}" />
<zip destfile="${project-name}" basedir="${folder-to-zip}" excludes="${project-name}" />
</target>
</project>

【讨论】:

    【解决方案2】:

    您可以在工件路径中使用参数引用,因此如果您定义一个名为 VersionNumber 的配置参数,其中包含版本号值并使用工件定义

    /**/. => Files.%VersionNumber%.Zip
    

    然后你会得到想要的输出。

    【讨论】:

    • 谢谢,但这并不能回答我的问题。我在问如何将工件放入 zip 文件中。当该工件本身是一个 zip 文件时。
    • 对造成的误解深表歉意。我不相信 TeamCity 将允许您使用一个构建配置对这样的文件进行双重压缩,并且您必须创建第二个构建配置,该配置仅对第一个具有工件依赖关系,然后使用它再次压缩它。
    • 您应该将其作为答案提交。 “不,你不能”仍然是一个答案。
    • 老问题,但我很确定 filename=> blah.zip 您可以将文件添加到 zip 包中
    • 您可以使用 7-zip 或其他工具在命令行构建步骤中更新现有的 zip,然后将结果作为人工制品输出。顺便提一句。我赞成这个 Q 因为它解决了我的问题(在 TC 中创建一个 zip :))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2021-12-29
    相关资源
    最近更新 更多