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



我有一个通用的代码库,我需要部署到两个不同的网站。我最近将代码库移动到 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"

我还没有尝试过这个脚本,我假设它对于相同变量的多个赋值会失败。

我通过将整个管道包装在一个时髦的 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"
}

最新更新