在Azure Pipelines上安装编译器

问题描述 投票:0回答:1

我有一个C项目,希望在多个不同的C编译器上进行测试。我目前正在使用Azure Pipelines对其进行测试,但是我不确定向我的工作流添加更多编译器的最佳方法是什么。

[当前,我只是使用脚本来sudo apt install测试所需的其他一些内容,但是Azure警告我不要这样做。我还遇到了一个问题,即无法通过apt install获得最新版本的TCC,因此我目前无法通过当前方法进行测试。

是否有适当的方法来做到这一点?我在想也许要指定一个供Azure使用的VM,已经安装了所需的任何软件。我不知道这是否可行或如何做到。浏览Azure管道文档也没有很大帮助,因为我不知道自己在寻找什么。

((如果有不清楚的地方,请让我知道,我不确定100%是否与此有关的正确术语。)

编辑:我基本上希望能够向我的azure-pipelines.yml中添加这样的内容:

- job: 
  displayName: "C TCC Ubuntu"
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: |
      set -e
      cmake -DCMAKE_C_COMPILER=tcc .
      make
    displayName: "Compile"
  - script:
      ./tests
    displayName: "Run Tests"

除了vmImage是自定义变量,我已经在其中安装了tcc。万一这是不可能的,任何其他解决方法也应受到赞赏。

azure azure-pipelines
1个回答
1
投票

Azure DevOps管道具有两种用于代理的模型,它们是自托管的或托管的。您可以运行预安装工具链的自托管代理。这带来了无需管理该服务器及其闲置成本的麻烦。要进行自我托管here,将引导您完成安装。

我鼓励您使用托管代理,因为它可以为您提供最大的灵活性,并且如果您愿意,也可以不限制您使用仅一个操作系统来执行构建。话虽如此,托管代理的常见模式是按照您所说的那样将工具安装在任务中。 Azure DevOps Extension市场上有几个示例,这些人创建了用于安装工具的扩展。 Here是Rust的示例,请注意安装程序的屏幕截图。

如果您不想在每次构建中都安装编译器而受到惩罚,还可以利用托管代理使用容器来构建软件的能力。然后,您可以预构建一个容器映像,该映像已安装了编译器和其他工具,并指示Azure DevOps在托管代理中使用该映像进行编译。 Here是该文档。

© www.soinside.com 2019 - 2024. All rights reserved.