将GitLab-CI用于复杂构建的方法

时间:2017-04-24 19:11:17

标签: continuous-integration gitlab gitlab-ci

我是持续整合的新手。我对能够测试我对代码所做的更改是否会破坏不同构建类型列表上的代码编译的系统感兴趣。

代码属性(我将称之为CodeA): 1.)依赖于数字库,如SUNDIALS和PETSC 2.)依赖于其他两个代码(CodeB CodeC),它们本身依赖于HDF5,MPI等等。

使用GitLab的CI功能设置一个能够在具有不同系统风格的Linux机器上构建CodeA(与CodeB和CodeC链接)是否可行(Ubuntu,OpenSuSe,RHEL,Fedora等) ?

我发现使用GitLab for CI的大多数示例都是测试,看看HelloWold.cpp是否编译了线路是否已更改。只需简单的构建,只需很少的外部依赖管理/集成。

1 个答案:

答案 0 :(得分:1)

所以听起来你在这里有一些非常好的问题。我会在看到它们时将它们分开,如果这完全回答了你的问题,你就会告诉我。

  1. 如何构建不同版本的linux?
    • 我将采用的方法是使用Docker文件作为评论中提到的Connor Shea。这允许您在CI系统中继续使用通用构建代理,但可以跨多个平台进行测试。
    • 另一个选择是查看您如何分发您的应用程序,看看您是否可以使用快照包。这样您就不必担心要部署的环境。
  2. 如何处理依赖项?
    • 这是考虑和工件库的真正有用的地方。 jfrog's artifactorysonatype's nexus都在这里创造奇迹。这将允许您为任何应用程序或库连接构建管道,并推送其他人可以使用的工件。可以使用您提供给构建的一组凭据来锁定这些凭据。
  3. 我希望这会有所帮助。

相关问题