Use Travis stages instead of custom timeouts (#2948)
This commit is contained in:
parent
49c37b82ae
commit
46c4f58441
104
.travis.yml
104
.travis.yml
@ -33,15 +33,89 @@ env:
|
|||||||
- secure: "RLzlMhfLqwSBrZqJOVOd61suXBn+HtUR3vOZfuFYF/Qmjjj5TE41+rObZmzc54hP/ZL+OH6blnibpvfDXlX+eN38ivFQfuxkJIGL68SJsEwNBRwW39Yw6Hl5RdI41MLCH7ByN15wifLp1JKBilHJ7XGMOUjI7P0yl7JjX8GBXUCtJbVLRugo80/yn+XQ1NdnlpbpYHNjMEQFWSODPa3pSK5McWvyQjDZDgS+IkdrZmIYJPMa7bmKH5I/edUPSmXQT905FgEwq9u8XR0SyBopli21EK9l6GkXIIvmDTYz5vT26Apvi2B4Aoazlklg+KNRUJuLGerpt6kbnU0gMSUChVkFfFhOk6GRSN3a/AUfD2FOudvMhet2QvlPHx+GYdEUr5XVo5HW42pHsqfD6eDtHd8VLTsHP0q4C8V85fNMv21lkkehy2ry8fx/RRy6x4O2wg2mua+79UkGKXp75gMKzWEcth34PCFCOu37l2F8R/ANnrQ52K/8vIQ88TtU2OpYX89fHjLojBxu+WKEBGZH2LRPsZBOUHeeO5C/xKDrhZU24ORnMW8wg66Qg5GIX1KI4a8yp73Mpues5hzpJ6wkMuRrQt40ymKndLCjv8KSd+5BfP6Or/KIrzDNYdZaasjk7JNi6rcZmm9d3fTAo+Ja/mjpUCIOo3SX14luzVCJIig="
|
- secure: "RLzlMhfLqwSBrZqJOVOd61suXBn+HtUR3vOZfuFYF/Qmjjj5TE41+rObZmzc54hP/ZL+OH6blnibpvfDXlX+eN38ivFQfuxkJIGL68SJsEwNBRwW39Yw6Hl5RdI41MLCH7ByN15wifLp1JKBilHJ7XGMOUjI7P0yl7JjX8GBXUCtJbVLRugo80/yn+XQ1NdnlpbpYHNjMEQFWSODPa3pSK5McWvyQjDZDgS+IkdrZmIYJPMa7bmKH5I/edUPSmXQT905FgEwq9u8XR0SyBopli21EK9l6GkXIIvmDTYz5vT26Apvi2B4Aoazlklg+KNRUJuLGerpt6kbnU0gMSUChVkFfFhOk6GRSN3a/AUfD2FOudvMhet2QvlPHx+GYdEUr5XVo5HW42pHsqfD6eDtHd8VLTsHP0q4C8V85fNMv21lkkehy2ry8fx/RRy6x4O2wg2mua+79UkGKXp75gMKzWEcth34PCFCOu37l2F8R/ANnrQ52K/8vIQ88TtU2OpYX89fHjLojBxu+WKEBGZH2LRPsZBOUHeeO5C/xKDrhZU24ORnMW8wg66Qg5GIX1KI4a8yp73Mpues5hzpJ6wkMuRrQt40ymKndLCjv8KSd+5BfP6Or/KIrzDNYdZaasjk7JNi6rcZmm9d3fTAo+Ja/mjpUCIOo3SX14luzVCJIig="
|
||||||
- DOCKER_BUILD=false
|
- DOCKER_BUILD=false
|
||||||
|
|
||||||
matrix:
|
stages:
|
||||||
- BUILD_TARGET=arm-linux
|
- build depends
|
||||||
- BUILD_TARGET=win32
|
- build src
|
||||||
- BUILD_TARGET=win64
|
- run tests
|
||||||
- BUILD_TARGET=linux32
|
- build docker
|
||||||
- BUILD_TARGET=linux64
|
|
||||||
- BUILD_TARGET=linux64_nowallet
|
builddepends: &builddepends
|
||||||
- BUILD_TARGET=linux64_release DOCKER_BUILD=true
|
stage: build depends
|
||||||
- BUILD_TARGET=mac
|
script:
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh
|
||||||
|
|
||||||
|
buildsrc: &buildsrc
|
||||||
|
stage: build src
|
||||||
|
script:
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh
|
||||||
|
|
||||||
|
runtests: &runtests
|
||||||
|
stage: run tests
|
||||||
|
script:
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/test_unittests.sh
|
||||||
|
- $DOCKER_RUN_IN_BUILDER ./ci/test_integrationtests.sh --jobs=3
|
||||||
|
|
||||||
|
builddocker: &builddocker
|
||||||
|
stage: build docker
|
||||||
|
script:
|
||||||
|
# no need to run tests again here
|
||||||
|
- if [ "$DOCKER_BUILD" = "true" ]; then $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh && $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh && BUILD_DIR=build-ci/dashcore-$BUILD_TARGET ./docker/build-docker.sh; fi
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# build depends
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=arm-linux
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=win32
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=win64
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=linux32
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=linux64
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=linux64_nowallet
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
|
||||||
|
- <<: *builddepends
|
||||||
|
env: BUILD_TARGET=mac
|
||||||
|
# build source
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=arm-linux
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=win32
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=win64
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=linux32
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=linux64
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=linux64_nowallet
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
|
||||||
|
- <<: *buildsrc
|
||||||
|
env: BUILD_TARGET=mac
|
||||||
|
# run tests (no tests for arm-linux and mac)
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=win32
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=win64
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=linux32
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=linux64
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=linux64_nowallet
|
||||||
|
- <<: *runtests
|
||||||
|
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
|
||||||
|
# build docker
|
||||||
|
- <<: *builddocker
|
||||||
|
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
|
||||||
|
|
||||||
before_cache:
|
before_cache:
|
||||||
# Save builder image
|
# Save builder image
|
||||||
@ -53,6 +127,7 @@ install:
|
|||||||
- export JOB_NUMBER="$TRAVIS_JOB_NUMBER"
|
- export JOB_NUMBER="$TRAVIS_JOB_NUMBER"
|
||||||
- export HOST_SRC_DIR=$TRAVIS_BUILD_DIR
|
- export HOST_SRC_DIR=$TRAVIS_BUILD_DIR
|
||||||
- export HOST_CACHE_DIR=$HOME/cache
|
- export HOST_CACHE_DIR=$HOME/cache
|
||||||
|
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
|
||||||
- source ./ci/matrix.sh
|
- source ./ci/matrix.sh
|
||||||
- mkdir -p $HOST_CACHE_DIR/docker && mkdir -p $HOST_CACHE_DIR/ccache && mkdir -p $HOST_CACHE_DIR/depends && mkdir -p $HOST_CACHE_DIR/sdk-sources
|
- mkdir -p $HOST_CACHE_DIR/docker && mkdir -p $HOST_CACHE_DIR/ccache && mkdir -p $HOST_CACHE_DIR/depends && mkdir -p $HOST_CACHE_DIR/sdk-sources
|
||||||
# Keep this as it makes caching related debugging easier
|
# Keep this as it makes caching related debugging easier
|
||||||
@ -67,17 +142,6 @@ before_script:
|
|||||||
- python3 -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
|
- python3 -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
|
||||||
# Build docker image only for develop branch of the main repo
|
# Build docker image only for develop branch of the main repo
|
||||||
- if [ "$TRAVIS_REPO_SLUG" != "dashpay/dash" -o "$TRAVIS_BRANCH" != "develop" -o "$TRAVIS_PULL_REQUEST" != "false" ]; then export DOCKER_BUILD="false"; echo DOCKER_BUILD=$DOCKER_BUILD; fi
|
- if [ "$TRAVIS_REPO_SLUG" != "dashpay/dash" -o "$TRAVIS_BRANCH" != "develop" -o "$TRAVIS_PULL_REQUEST" != "false" ]; then export DOCKER_BUILD="false"; echo DOCKER_BUILD=$DOCKER_BUILD; fi
|
||||||
script:
|
|
||||||
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
|
|
||||||
# Our scripts try to be Travis agnostic
|
|
||||||
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh;
|
|
||||||
# Gracefully stop build without running into timeouts (which won't update caches) when building depends took too long
|
|
||||||
# Next build should fix this situation as it will start with a populated depends cache
|
|
||||||
- if [ $SECONDS -gt 1200 ]; then export DEPENDS_TIMEOUT="true"; false; fi # The "false" here ensures that the build is marked as failed even though the whole script returns 0
|
|
||||||
- test "$DEPENDS_TIMEOUT" != "true" && $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh
|
|
||||||
- test "$DEPENDS_TIMEOUT" != "true" && $DOCKER_RUN_IN_BUILDER ./ci/test_unittests.sh
|
|
||||||
- test "$DEPENDS_TIMEOUT" != "true" && $DOCKER_RUN_IN_BUILDER ./ci/test_integrationtests.sh --jobs=3
|
|
||||||
- test "$DEPENDS_TIMEOUT" != "true" && if [ "$DOCKER_BUILD" = "true" ]; then BUILD_DIR=build-ci/dashcore-$BUILD_TARGET ./docker/build-docker.sh; fi
|
|
||||||
after_script:
|
after_script:
|
||||||
- echo $TRAVIS_COMMIT_RANGE
|
- echo $TRAVIS_COMMIT_RANGE
|
||||||
- echo $TRAVIS_COMMIT_LOG
|
- echo $TRAVIS_COMMIT_LOG
|
||||||
|
Loading…
Reference in New Issue
Block a user