Opencv 由于超时,生成失败

Opencv 由于超时,生成失败,opencv,travis-ci,Opencv,Travis Ci,我有一个项目,它是opencv库的包装器,用Rust编写 为了能够测试它,我必须构建opencv本身。然后我缓存它,但冷构建时间超过50分钟,作业就会被杀死 如何增加此超时?例如,我每个作业超时50分钟,但我希望每10个作业有500分钟,这样我可以运行我的第一个冷启动构建90分钟,然后运行快速构建10分钟 我不知道这是否可能,所以我正在寻找解决办法。以下是我的脚本,它占用了大部分时间: #/bin/bash set-eux-o管道故障 OPENCV_版本=${OPENCV_版本:-3.4.0}

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

为了能够测试它,我必须构建
opencv
本身。然后我缓存它,但冷构建时间超过50分钟,作业就会被杀死

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

我不知道这是否可能,所以我正在寻找解决办法。以下是我的脚本,它占用了大部分时间:

#/bin/bash
set-eux-o管道故障
OPENCV_版本=${OPENCV_版本:-3.4.0}
网址=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}”
如果[!-e安装目录];然后
TMP=$(mktemp-d)
OPENCV_DIR=“$(pwd)/OPENCV-${OPENCV_VERSION}”
OPENCV_CONTRIB_DIR=“$(pwd)/OPENCV_CONTRIB-${OPENCV_VERSION}”
如果[!-d“${OPENCV_DIR}/build”];然后
curl-sL${URL}>${TMP}/opencv.zip
解压-q${TMP}/opencv.zip
rm${TMP}/opencv.zip
curl-sL${URL\u CONTRUB}>${TMP}/opencv\u contrib.zip
解压-q${TMP}/opencv_contrib.zip
rm${TMP}/opencv_contrib.zip
mkdir$OPENCV_DIR/build
fi
pushd$OPENCV_目录/构建
克马克\
-D且_CUDA=开启\
-D BUILD_EXAMPLES=OFF\
-D构建测试=关闭\
-D构建性能测试=关闭\
-D BUILD_opencv_java=OFF\
-D BUILD_opencv_python=OFF\
-D BUILD_opencv_python2=OFF\
-D BUILD_opencv_python3=OFF\
-D CMAKE_安装_前缀=$HOME/usr\
-D CMAKE_BUILD_TYPE=发布\
-D OPENCV_EXTRA_MODULES_PATH=$OPENCV_CONTRIB_DIR/MODULES\
-D CUDA_ARCH_BIN=5.2\
-D CUDA_ARCH_PTX=“”\
..
make-j4
使安装和触摸安装目录(&T)
邻苯二胺
触摸$HOME/新鲜缓存
fi
sudo cp-r$HOME/usr/include/*/usr/local/include/
sudo cp-r$HOME/usr/lib/*/usr/local/lib/
如何增加此超时

根据协议,这是不可能的,超时时间分别固定为50分钟(travis ci.org)和120分钟(travis ci.com)

你可以考虑升级特拉维斯计划。然而,真正的问题不是超时,而是在每次构建之前构建一个大型库的必要性。即使硬缓存稍微改善了情况,但仍然很糟糕

有一些方法可以减少构建时间(每次构建)-当然,什么最适合您取决于您的情况

A.购电协议 如果你很幸运,并且有一个PPA提供OpenCV版本,那么你可以使用它。Travis运行Ubuntu 14.04 Trusty

B.预构建二进制文件 您始终可以构建自己的OpenCV,并将预构建的二进制文件上载到服务器或不同的Git repo。然后Travis可以下载并安装到那里

C.多克 国际海事组织是解决这一问题的最佳办法。创建自定义的Docker映像或使用现有映像(周围有足够的映像)。这是寻找are和are的良好开端。此外,这种方式使您能够打包任何进一步的依赖项、编译器等—只需打包您所需的一切

D.联系特拉维斯
您可以随时询问OpenCV的更新版本。

对于那些否决投票的人,请解释一下,您不喜欢什么,我可以在问题中更改什么以使其更好。