是否可以将安装deps和缓存与源代码的构建分开?
我有:
sudo: required
language: cpp
matrix:
include:
- env: GCC_VERSION="4.9"
os: linux
dist: trusty
compiler: gcc
cache:
directories:
- /usr/local/include
- /usr/local/lib
- /usr/local/share
addons:
apt:
packages:
- gcc-4.9
- g++-4.9
sources:
- ubuntu-toolchain-r-test
# Install dependencies
install:
- export BUILD_DEPS="OFF"
- export BUILD_GRSF="ON"
- export CHECKOUT_PATH=`pwd`;
- chmod +x $CHECKOUT_PATH/travis/install_${TRAVIS_OS_NAME}.sh
- . $CHECKOUT_PATH/travis/install_${TRAVIS_OS_NAME}.sh
script:
- chmod +x $CHECKOUT_PATH/travis/build.sh
- . $CHECKOUT_PATH/travis/build.sh
notifications:
email: false
因为我的构建需要太长时间(构建依赖项和源代码超过50分钟),所以我按以下方式继续: 我设置了
BUILD_DEPS="ON" # build only deps
BUILD_GRSF="OFF"
只构建依赖项并缓存它们,然后我设置
BUILD_DEPS="OFF"
BUILD_GRSF="ON" # build only source
在.travis.yaml
文件中,然后只构建源代码。
这似乎有效,但很麻烦?有更好的解决方案吗?也许直接在travis上修改.travis.yaml
并进行新的提交“travis cached,build source now”。然后它将触发另一个travis构建(现在构建源代码)
答案 0 :(得分:1)
您的依赖安装脚本可以在成功安装到缓存目录后查找脚本离开的标记文件,并且只有在找不到该标记文件时才会重新运行构建。 这样你至少不需要对travis规范进行任何修改。
答案 1 :(得分:-1)
似乎travis只能缓存在$HOME
:
https://github.com/travis-ci/travis-ci/issues/6115#issuecomment-222817367