mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
3d141a8663
fa082d0a57afedca9122fac4aecd6a3070f06b04 travis: Remove valgrind (MarcoFalke)
Pull request description:
When the valgrind run was added, it took 2 hours. Travis kindly raised the timeout limit to the maximum possible of 3 hours.
Today, a full build of Bitcoin Core with all tests takes more than three hours. Thus, it is impossible to run all tests on travis.
Moreover, the feedback loop for developers that create a pull request takes at least 2 hours, but in some cases (when the travis queue is full) until the next day. This is unacceptable.
Fix both issues by removing the build from travis.
Please note that the `ci/test/` configurations are *not* removed. They will stay in the repo and can be executed anywhere (just not on travis).
ACKs for top commit:
jamesob:
ACK fa082d0a57
jnewbery:
utACK fa082d0a57afedca9122fac4aecd6a3070f06b04
Tree-SHA512: 9acaa0e2d3926014fadb7dd2e86c4e01df382e9399f6ae99f989fa609da66a77bdd1b75d6ff42d2686f38f730b8564e6dc722aa597a473290c9d30c2abe7ef0f
344 lines
8.7 KiB
YAML
344 lines
8.7 KiB
YAML
image: "ubuntu:focal"
|
|
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
FAST_MODE: "false" # when "true", only run linter on arm and unit/functional tests on linux64, skip everything else
|
|
|
|
workflow:
|
|
rules:
|
|
- when: always
|
|
|
|
stages:
|
|
- builder-image
|
|
- build-depends
|
|
- build
|
|
- test
|
|
|
|
builder-image:
|
|
stage: builder-image
|
|
image: docker:20.10.20
|
|
services:
|
|
- name: docker:20.10.20-dind
|
|
command: ["--tls=false"]
|
|
variables:
|
|
DOCKER_HOST: "tcp://docker:2375"
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_TLS_CERTDIR: ""
|
|
before_script:
|
|
- echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
|
|
script:
|
|
- cd contrib/containers/ci
|
|
- docker pull $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG || true
|
|
- docker pull $CI_REGISTRY_IMAGE:builder-develop || true
|
|
- docker build --cache-from $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG --cache-from $CI_REGISTRY_IMAGE:builder-develop -t $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG -f Dockerfile .
|
|
- docker push $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG
|
|
|
|
.build-depends-template:
|
|
stage: build-depends
|
|
rules:
|
|
- when: on_success
|
|
needs:
|
|
- builder-image
|
|
image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG
|
|
variables:
|
|
SDK_URL: https://bitcoincore.org/depends-sources/sdks
|
|
XCODE_VERSION: "12.1"
|
|
XCODE_BUILD_ID: 12A7403
|
|
MAKEJOBS: -j4
|
|
before_script:
|
|
- echo HOST=$HOST
|
|
- |
|
|
if [ "$HOST" = "x86_64-apple-darwin19" ]; then
|
|
mkdir -p depends/SDKs
|
|
mkdir -p depends/sdk-sources
|
|
OSX_SDK_BASENAME="Xcode-${XCODE_VERSION}-${XCODE_BUILD_ID}-extracted-SDK-with-libcxx-headers.tar.gz"
|
|
OSX_SDK_PATH="depends/sdk-sources/${OSX_SDK_BASENAME}"
|
|
if [ ! -f "$OSX_SDK_PATH" ]; then
|
|
echo "Downloading MacOS SDK"
|
|
curl --location --fail "${SDK_URL}/${OSX_SDK_BASENAME}" -o "$OSX_SDK_PATH"
|
|
fi
|
|
if [ -f "$OSX_SDK_PATH" ]; then
|
|
echo "Extracting MacOS SDK"
|
|
tar -C depends/SDKs -xf "$OSX_SDK_PATH"
|
|
fi
|
|
fi
|
|
script:
|
|
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
|
|
cache:
|
|
# Let all branches share the same cache, which is ok because the depends subsystem is able to handle this properly (it works with hashes of all scripts)
|
|
key:
|
|
files:
|
|
- contrib/containers/ci/Dockerfile
|
|
prefix: ${CI_JOB_NAME}
|
|
paths:
|
|
- depends/built
|
|
- depends/sdk-sources
|
|
artifacts:
|
|
name: depends
|
|
when: on_success
|
|
paths:
|
|
- depends/$HOST
|
|
- depends/SDKs
|
|
|
|
.base-template:
|
|
image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG
|
|
rules:
|
|
- when: on_success
|
|
before_script:
|
|
- export CACHE_DIR=$CI_PROJECT_DIR/cache
|
|
- echo BUILD_TARGET=$BUILD_TARGET
|
|
- source ./ci/dash/matrix.sh
|
|
|
|
# Setup some environment variables
|
|
- |
|
|
if [ "$CI_EXTERNAL_PULL_REQUEST_IID" != "" ]; then
|
|
export PULL_REQUEST="true"
|
|
else
|
|
# CI_EXTERNAL_PULL_REQUEST_IID is false every time until https://gitlab.com/gitlab-org/gitlab/issues/5667 is done
|
|
# Until then, we're using https://github.com/brndnmtthws/labhub atm to mirror Github pull requests as branches into Gitlab,
|
|
# which allows us to use Gitlab CI for Github. The following check detects such mirrored branches.
|
|
if [[ $CI_COMMIT_REF_NAME =~ ^pr-[^/]*/[^/]*/[^/]*/[^/]*$ ]]; then
|
|
export PULL_REQUEST="true"
|
|
# CI_COMMIT_BEFORE_SHA is also invalid until #5667 is implemented, so we need to figure it out by ourself
|
|
git fetch origin develop
|
|
export CI_COMMIT_BEFORE_SHA="$(git merge-base origin/develop HEAD)"
|
|
else
|
|
export PULL_REQUEST="false"
|
|
fi
|
|
fi
|
|
- export COMMIT_RANGE="$CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA"
|
|
- export JOB_NUMBER="$CI_JOB_ID"
|
|
- export HOST_SRC_DIR=$CI_PROJECT_DIR
|
|
- echo PULL_REQUEST=$PULL_REQUEST COMMIT_RANGE=$COMMIT_RANGE HOST_SRC_DIR=$HOST_SRC_DIR CACHE_DIR=$CACHE_DIR
|
|
- echo "Commit log:" && git log --format=fuller -1
|
|
|
|
.build-template:
|
|
stage: build
|
|
extends: .base-template
|
|
script:
|
|
- ./ci/dash/build_src.sh
|
|
- ./ci/dash/test_unittests.sh # Run unit tests in build stage to avoid creating too many parallel jobs
|
|
cache:
|
|
# Let all branches share the same cache, which is ok because ccache is able to handle it
|
|
key:
|
|
files:
|
|
- contrib/containers/ci/Dockerfile
|
|
prefix: ${CI_JOB_NAME}
|
|
paths:
|
|
- cache/ccache
|
|
artifacts:
|
|
name: binaries
|
|
when: always
|
|
paths:
|
|
- build-ci
|
|
# Exclude some less important binaries to reduce the size of the artifacts
|
|
exclude:
|
|
- build-ci/dashcore-$BUILD_TARGET/src/bench/bench_dash
|
|
- build-ci/dashcore-$BUILD_TARGET/src/bench/bench_dash.exe
|
|
- build-ci/dashcore-$BUILD_TARGET/src/qt/test/test_dash-qt
|
|
- build-ci/dashcore-$BUILD_TARGET/src/qt/test/test_dash-qt.exe
|
|
- build-ci/dashcore-$BUILD_TARGET/src/test/test_dash
|
|
- build-ci/dashcore-$BUILD_TARGET/src/test/test_dash.exe
|
|
- build-ci/dashcore-$BUILD_TARGET/src/test/fuzz/*
|
|
expire_in: 3 days
|
|
|
|
.test-template:
|
|
stage: test
|
|
extends: .base-template
|
|
variables:
|
|
INTEGRATION_TESTS_ARGS: "--extended --exclude feature_pruning,feature_dbcrash"
|
|
script:
|
|
- echo "INTEGRATION_TESTS_ARGS=${INTEGRATION_TESTS_ARGS}"
|
|
- ./ci/dash/test_integrationtests.sh $INTEGRATION_TESTS_ARGS
|
|
after_script:
|
|
- mkdir -p $CI_PROJECT_DIR/testlogs
|
|
artifacts:
|
|
name: testlogs
|
|
when: always
|
|
paths:
|
|
- testlogs
|
|
expire_in: 3 days
|
|
|
|
.skip-in-fast-mode-template:
|
|
rules:
|
|
- if: '$FAST_MODE == "true"'
|
|
when: never
|
|
- when: on_success
|
|
|
|
###
|
|
|
|
arm-linux-gnueabihf:
|
|
extends: .build-depends-template
|
|
variables:
|
|
HOST: arm-linux-gnueabihf
|
|
|
|
x86_64-w64-mingw32:
|
|
extends:
|
|
- .build-depends-template
|
|
- .skip-in-fast-mode-template
|
|
variables:
|
|
HOST: x86_64-w64-mingw32
|
|
|
|
x86_64-pc-linux-gnu-debug:
|
|
extends: .build-depends-template
|
|
variables:
|
|
HOST: x86_64-pc-linux-gnu
|
|
DEP_OPTS: "DEBUG=1"
|
|
|
|
x86_64-pc-linux-gnu-nowallet:
|
|
extends:
|
|
- .build-depends-template
|
|
- .skip-in-fast-mode-template
|
|
variables:
|
|
HOST: x86_64-pc-linux-gnu
|
|
DEP_OPTS: "NO_WALLET=1"
|
|
|
|
x86_64-apple-darwin19:
|
|
extends:
|
|
- .build-depends-template
|
|
- .skip-in-fast-mode-template
|
|
variables:
|
|
HOST: x86_64-apple-darwin19
|
|
|
|
###
|
|
|
|
arm-linux-build:
|
|
extends: .build-template
|
|
needs:
|
|
- arm-linux-gnueabihf
|
|
variables:
|
|
BUILD_TARGET: arm-linux
|
|
|
|
win64-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-w64-mingw32
|
|
variables:
|
|
BUILD_TARGET: win64
|
|
|
|
linux64-build:
|
|
extends: .build-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64
|
|
|
|
linux64_cxx20-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64_cxx20
|
|
|
|
linux64_sqlite-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64_sqlite
|
|
|
|
linux64_fuzz-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64_fuzz
|
|
|
|
linux64_tsan-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64_tsan
|
|
|
|
linux64_ubsan-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-debug
|
|
variables:
|
|
BUILD_TARGET: linux64_ubsan
|
|
|
|
linux64_nowallet-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-pc-linux-gnu-nowallet
|
|
variables:
|
|
BUILD_TARGET: linux64_nowallet
|
|
|
|
#linux64_valgrind-build:
|
|
# extends:
|
|
# - .build-template
|
|
# - .skip-in-fast-mode-template
|
|
# needs:
|
|
# - x86_64-pc-linux-gnu-debug
|
|
# variables:
|
|
# BUILD_TARGET: linux64_valgrind
|
|
|
|
mac-build:
|
|
extends:
|
|
- .build-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- x86_64-apple-darwin19
|
|
variables:
|
|
BUILD_TARGET: mac
|
|
|
|
###
|
|
|
|
linux64-test:
|
|
extends: .test-template
|
|
needs:
|
|
- linux64-build
|
|
variables:
|
|
BUILD_TARGET: linux64
|
|
|
|
linux64_sqlite-test:
|
|
extends:
|
|
- .test-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- linux64_sqlite-build
|
|
variables:
|
|
BUILD_TARGET: linux64_sqlite
|
|
|
|
linux64_tsan-test:
|
|
extends:
|
|
- .test-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- linux64_tsan-build
|
|
variables:
|
|
BUILD_TARGET: linux64_tsan
|
|
|
|
linux64_ubsan-test:
|
|
extends:
|
|
- .test-template
|
|
- .skip-in-fast-mode-template
|
|
needs:
|
|
- linux64_ubsan-build
|
|
variables:
|
|
BUILD_TARGET: linux64_ubsan
|
|
|
|
#linux64_valgrind-test:
|
|
# extends:
|
|
# - .test-template
|
|
# - .skip-in-fast-mode-template
|
|
# needs:
|
|
# - linux64_valgrind-build
|
|
# variables:
|
|
# BUILD_TARGET: linux64_valgrind
|