我正在开发一个包含许多优化工具的开源项目。我已经将项目上传到github了,我希望每次有人提交拉取请求时自动运行测试套件。为此,我计划使用travis-ci。问题是测试套件依赖于第三方解算器(IBM cplex)。
要在我的计算机上本地运行测试套件,我会执行以下操作:
下载并安装求解器IBM Cplex
在我的本地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
export LD_LIBRARY_PATH=/opt/ILOG/CPLEX_Studio1261/cplex/bin/x86-64_linux/:$LD_LIBRARY_PATH
问题:
有没有办法将必要的解算器文件上传到travis-ci而不公开? This堆栈溢出问题描述了我如何将我的cplex.jar变成travis,但据我所知,我必须将jar放在某个web服务器上,并在.travis中添加一个清晰可读的链接。 yml文件。
即使我设法将cplex.jar放入travis,我如何获得本地库?它们的大小非常大,因此如果travis每次必须执行构建时都必须下载这些库,那将是不可取的。此外,除了travis测试系统之外,我不想让任何人都可以使用这些库。
如果事实证明以上是不可能的。是否有另一个CI系统,也许我可以在私有服务器上运行,可以执行此操作并在通过github提交pull-request时运行?
答案 0 :(得分:0)
你可能想看Travis file encryption。您仍然需要将(尽管)加密的cplex.jar
添加到您的git存储库中,但至少它不会公开。我可以看出为什么这种情况在你的情况下并不理想,但由于你没有提到它,我写这个答案以防万一。
或者,您也可以将cplex.jar
存储在自己的服务器上,然后将该网址存储在encrypted environment variable中。