我有一个使用库Z3求解器的项目,并希望将travis-ci应用于连续测试。但是,我无法在Travis-Ci的远程计算机上设置Z3。
这是有关我项目的更多信息:
- 由Ide Eclipse Mars创建
- 使用JDK 8
- 使用蚂蚁进行buid build.xml
内容文件 .travis.yml
language: java
sudo: enabled
jdk:
- oraclejdk8
before_install:
- sudo apt-get update
- sudo apt-get install z3 -y
script:
- ant build
- ant 'MyJUnitTest'
远程计算机上的输出
... (be removed for clarity)
$ sudo apt-get install z3 -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package z3
The command "sudo apt-get install z3 -y" failed and exited with 100 during .
Your build has been stopped.
我已经理解,可以通过将包含Z3求解器的存储库添加到 .travis.yml (e节 tre_install (来解决问题。我找到了一个存储库:https://launchpad.net/~hvr/archive/ubuntu/z3。但是,该存储库不再起作用。更清楚,10分钟后(Travis-CI机器上的默认等待时间(,此存储库没有任何响应。
$ sudo add-apt-repository ppa:hvr/z3
More info: https://launchpad.net/~hvr/+archive/ubuntu/z3
Press [ENTER] to continue or ctrl-c to cancel adding it
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated
据我所知,没有官方/支持的方法可以做到这一点。如果确实有一个维护的存储库,那就太好了。但是,可以通过直接拉下版本并将其安装在构建机器上来进行一些黑客攻击。
使用夜间Z3构建
Z3的人们确实在GitHub上维护夜间建设,因此确实可以将最新代码与Travis-Ci(For Linux和Mac(和Appveyor(适用于Windows(集成在一起。
。作为如何在Travis中执行此操作的示例,请参见:
https://github.com/leventerkok/sbv/blob/master/.travis.yml#l46-l66
有关Appveyor设置,请参见:
https://github.com/leventerkok/sbv/blob/master/.appveyor.yml#l10-l13
根据您的确切需求,您应该能够将其用于自己的问题。(请注意,通过在Mac上安装其他一些依赖项,Travis位比Z3多得多;您应该将其排除在外。如果您需要帮助,请ping!(
稳定性的注释
不幸的是,此技巧不是100%的傻瓜,并且确实需要偶尔维护,因为它依赖于Z3的存储位置,夜间构建的命名方式,Travis/Appveyor句柄环境的命名方式等;但是它对我有相当可靠地工作了一段时间。祝你好运!
使用稳定的Z3版本
如果您想要"稳定"构建而不是"夜间" Z3,则可以通过稍微修改位置来使用类似的技巧;从本质上是从:https://github.com/z3prover/bin/tree/master/releases代替https://github.com/z3prover/bin/bin/bin/tree/master/master/nightly