将工件a,b,c作为a.zip,b.zip,c.zip发布

问题描述

我有一个TeamCity构建,其他构建依赖于此。这个构建在目录内产生一些输出,例如output_dir / dir1,output_dir / dir2,output_dir / dir3。

有什么办法可以将这三个目录分别压缩为dir1.zip,dir2.zip,dir3.zip?我需要类似output_dir/dir* => dir*.zip

的东西

我可以手动输入所有路径,但是我希望它是可扩展的并且是自动的。

解决方法

我认为没有现成的解决方案。但是,我会尝试使用 build 参数而不是硬编码的工件模式。这就是我的意思:

  • General Settings > Artifacts paths 上输入一些构建参数参考:

enter image description here

  • 将该构建参数设置为空字符串
  • 创建一个构建步骤,例如PowerShell,它致力于生成真正的工件路径模式,例如 output_dir/dir1 => dir1.zip,output_dir/dir2 => dir2.zip 等。
  • 作为该 PowerShell 脚本的最后一步,使用 the TeamCity service message%artifact.pattern% 构建参数设置为生成的值。

老实说,我自己还没有尝试过,但是 Artifacts paths 字段支持构建参数的事实让我觉得这可能是可能的。当然,您可能会意识到这太麻烦了,手动更新值并不是一个坏主意;)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...