缓存安装deps,然后在travis中构建

时间:2016-05-31 01:47:50

标签: caching travis-ci

是否可以将安装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构建(现在构建源代码)

2 个答案:

答案 0 :(得分:1)

您的依赖安装脚本可以在成功安装到缓存目录后查找脚本离开的标记文件,并且只有在找不到该标记文件时才会重新运行构建。 这样你至少不需要对travis规范进行任何修改。

答案 1 :(得分:-1)