travis CI中的第三方依赖

时间:2016-07-01 05:02:57

标签: travis-ci

我正在开发一个包含许多优化工具的开源项目。我已经将项目上传到github了,我希望每次有人提交拉取请求时自动运行测试套件。为此,我计划使用travis-ci。问题是测试套件依赖于第三方解算器(IBM cplex)。

要在我的计算机上本地运行测试套件,我会执行以下操作:

  1. 下载并安装求解器IBM Cplex

  2. 在我的本地maven存储库中安装cplex.jar:mvn install:install-file -DgroupId=cplex -DartifactId=cplex -Dversion=12.6.1 -Dpackaging=jar -Dfile=/opt/ILOG/CPLEX_Studio1261/cplex/lib/cplex.jar

  3. 设置我的LD_LIBRARY_PATH变量以指向解算器的本机库:export LD_LIBRARY_PATH=/opt/ILOG/CPLEX_Studio1261/cplex/bin/x86-64_linux/:$LD_LIBRARY_PATH
  4. 编译/运行测试套件。
  5. 问题:

    • Cplex不是开源的;我不想将它上传到我的github存储库。此外,它的解压缩尺寸相当大(1GB)。

    有没有办法将必要的解算器文件上传到travis-ci而不公开? This堆栈溢出问题描述了我如何将我的cplex.jar变成travis,但据我所知,我必须将jar放在某个web服务器上,并在.travis中添加一个清晰可读的链接。 yml文件。

    即使我设法将cplex.jar放入travis,我如何获得本地库?它们的大小非常大,因此如果travis每次必须执行构建时都必须下载这些库,那将是不可取的。此外,除了travis测试系统之外,我不想让任何人都可以使用这些库。

    如果事实证明以上是不可能的。是否有另一个CI系统,也许我可以在私有服务器上运行,可以执行此操作并在通过github提交pull-request时运行?

1 个答案:

答案 0 :(得分:0)

你可能想看Travis file encryption。您仍然需要将(尽管)加密的cplex.jar添加到您的git存储库中,但至少它不会公开。我可以看出为什么这种情况在你的情况下并不理想,但由于你没有提到它,我写这个答案以防万一。

或者,您也可以将cplex.jar存储在自己的服务器上,然后将该网址存储在encrypted environment variable中。