由于超时,构建失败

时间:2018-02-01 11:36:29

标签: opencv travis-ci

我有一个项目,它是opencv库的包装器,用Rust编写。

为了能够测试它,我必须自己构建opencv。然后我缓存它,但冷建立时间高于50分钟,工作被杀死。

这个超时怎么可能增加?例如,我每个作业超时50分钟,但我希望每10个作业有500分钟,所以我可以运行我的第一个冷启动构建,比如90分钟,然后快速构建每个10分钟。

我不知道是否可能,所以我正在寻找任何解决方法。这是我的大部分时间的脚本:

#!/bin/bash
set -eux -o pipefail

OPENCV_VERSION=${OPENCV_VERSION:-3.4.0}
URL=https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip
URL_CONTRUB=https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip
INSTALL_DIR="$HOME/usr/installed-${OPENCV_VERSION}"

if [[ ! -e INSTALL_DIR ]]; then
    TMP=$(mktemp -d)
    OPENCV_DIR="$(pwd)/opencv-${OPENCV_VERSION}"
    OPENCV_CONTRIB_DIR="$(pwd)/opencv_contrib-${OPENCV_VERSION}"
    if [[ ! -d "${OPENCV_DIR}/build" ]]; then
        curl -sL ${URL}  > ${TMP}/opencv.zip
        unzip -q ${TMP}/opencv.zip
        rm ${TMP}/opencv.zip

        curl -sL ${URL_CONTRUB}  > ${TMP}/opencv_contrib.zip
        unzip -q ${TMP}/opencv_contrib.zip
        rm ${TMP}/opencv_contrib.zip

        mkdir $OPENCV_DIR/build
    fi

    pushd $OPENCV_DIR/build
    cmake \
        -D WITH_CUDA=ON \
        -D BUILD_EXAMPLES=OFF \
        -D BUILD_TESTS=OFF \
        -D BUILD_PERF_TESTS=OFF  \
        -D BUILD_opencv_java=OFF \
        -D BUILD_opencv_python=OFF \
        -D BUILD_opencv_python2=OFF \
        -D BUILD_opencv_python3=OFF \
        -D CMAKE_INSTALL_PREFIX=$HOME/usr \
        -D CMAKE_BUILD_TYPE=Release \
        -D OPENCV_EXTRA_MODULES_PATH=$OPENCV_CONTRIB_DIR/modules \
        -D CUDA_ARCH_BIN=5.2 \
        -D CUDA_ARCH_PTX="" \
        ..
    make -j4
    make install && touch INSTALL_DIR
    popd
    touch $HOME/fresh-cache
fi

sudo cp -r $HOME/usr/include/* /usr/local/include/
sudo cp -r $HOME/usr/lib/* /usr/local/lib/

1 个答案:

答案 0 :(得分:1)

  

这个超时怎么可能增加?

根据Travis docs不可能, 超时已修复 50分钟(travis- ci.org)分别 120分钟(travis-ci.com)。

您可以考虑升级travis计划。但是,真正的问题是超时,而是在每次构建之前构建一个巨大的库的必要性。即使是强硬的缓存也可以改善这种情况,但仍然很糟糕。

有一些方法可以缩短构建时间(每个构建版本) - 最适合您的方法取决于您的具体情况。

一种。 PPA

如果你运气好,并且 PPA 发布了一个OpenCV版本,你可以use那个。 Travis运行Ubuntu 14.04 Trusty。

B中。预构建二进制文件

您始终可以自己构建OpenCV并将预构建二进制文件上传到例如。服务器或不同的Git仓库。然后Travis可以在那里下载并安装。

℃。泊坞

Docker最好的方法。创建自定义 Docker Image 或使用现有的(有足够的)。一个好的开始是DockerHubGitHub。此外,这种方式使您可以打包任何进一步的依赖项,编译器,... - 只需您需要的一切。

d。联系Travis

您始终可以drop an issue at Travis并要求提供OpenCV的更新版本。