【问题标题】:How to package multiple MSI from same Jenkins build pipeline如何从同一个 Jenkins 构建管道打包多个 MSI
【发布时间】:2019-04-14 00:22:19
【问题描述】:

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

我没有尝试过这个脚本,我假设它会因为对相同变量的多次分配而失败。

【问题讨论】:

    标签: jenkins


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 2022-08-24
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多