在.travis.yml我的一个项目中,我根据我也在.travis.yml文件中设置的环境变量来确定要安装哪些包。它看起来像这样:
env:
- CABALVER=1.18 GHCVER=7.8.1
- CABALVER=1.18 GHCVER=7.8.2
...
before_install:
...
- travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
...
Run Code Online (Sandbox Code Playgroud)
这是在遗留基础设施下。我想切换到基于容器的基础设施,这意味着用以下内容替换该before_install行:
addons:
apt:
packages:
- cabal-install-$CABALVER
- ghc-$GHCVER
Run Code Online (Sandbox Code Playgroud)
...除非这不起作用,因为直到 Travis 尝试安装请求的 apt 包之后,环境变量才会设置。因此,如果我尝试使用上述内容,我会收到关于我如何尝试安装名为cabal-install-and ghc-(带有结尾连字符,但减去版本后缀)的包的错误,这当然不存在。
有没有办法在基于容器的基础设施上完成我想要的?我可以尝试一次安装所有版本,然后使用 env vars 来确定在给定的工作中使用哪个版本,但是(即使我可以防止由于在一次)为每个构建作业安装所有这些真的很慢,这将否定切换到基于容器的基础设施的目的。
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |