如何从同一Jenkins构建管道打包多个MSI

时间:2019-04-11 14:20:56

标签: jenkins

我有一个通用的代码库,需要将其部署到两个不同的网站。最近,我将代码库移至Bit Bucket,并使用Jenkins自动化了我的构建。我想在我的Jenkins作业中从相同的构建输出构建两个wix脚本化的MSI软件包。 这可能吗?

我尝试创建第二个存储桶存储库,并在原始代码中构建代码以创建wix所需的输出,但是第二个存储库看不到原始存储库。

我假设,如果我仅编写第二个打包步骤,Jenkins脚本就会阻塞。

//Build the code
jenkinsBuildAgent = "msbuild"
msbuildSolutionFile = "My_only_solution_file.sln"

//Package & Publish artifacts (1)
artifactName = "My_First_Artifact"
artifactVersion = "1.0.0"
artifactPackageType = ["msi"]
msiGenerationParams = "My_First_Wix_Script.wxs"

//Package & Publish artifacts (2)
artifactName = "My_Second_Artifact"
artifactVersion = "1.0.0"
artifactPackageType = ["msi"]
msiGenerationParams = "My_Second_Wix_Script.wxs"

我还没有尝试过该脚本,我假设,因为对同一变量进行多次分配,该脚本将失败。

1 个答案:

答案 0 :(得分:0)

我通过将整个管道包装在groovy for循环中解决了这个问题。在管道工件的主体中,我有条件地设置属性。这样行之有效,两个MSI都被打包并发布。

//Package & Publish artifacts
artifactVersion = "1.0.0"
artifactPackageType = ["msi"]
if (i == 0)
{
    artifactName = "My_First_Artifact"
    msiGenerationParams = "My_First_Wix_Script.wxs"

}
else 
{
    artifactName = "My_Second_Artifact"
    msiGenerationParams = "My_Second_Wix_Script.wxs"
}