diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index b239ad5214d7..000000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,373 +0,0 @@ -image: "ubuntu:noble" - -variables: - DOCKER_DRIVER: overlay2 - CI_FAILFAST_TEST_LEAVE_DANGLING: "1" # Gitlab CI does not care about dangling process and setting this variable avoids killing the CI script itself on error - # BUILD_TARGETS: '/^(arm-linux|linux64|linux64_fuzz|linux64_multiprocess|linux64_nowallet|linux64_sqlite|linux64_tsan|linux64_ubsan|mac|win64)$/' - # Set BUILD_TARGETS variable in Gitlab CI/CD settings using the template above excluding the build targets you don't need. - # For example, the old FAST_MODE would be '/^(arm-linux|linux64)$/'. - # If BUILD_TARGETS is not set or it's an empty string then no filtering is applied. - # NOTE: "Value" MUST be wrapped in '' i.e. it should be '/reg_exp/' ('' included) and not /reg_exp/ (no ''). - -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 - - export DOCKER_BUILDKIT=1 - - 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 ci.Dockerfile . - - docker push $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG - -.build-depends-template: - stage: build-depends - rules: - - if: '$BUILD_TARGETS == null || $BUILD_TARGETS == "" || $BUILD_TARGET =~ $BUILD_TARGETS' - when: on_success - - when: never - needs: - - builder-image - image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG - before_script: - - | - echo BUILD_TARGET="${BUILD_TARGET}" - echo BUILD_TARGETS="${BUILD_TARGETS}" - source ./ci/dash/matrix.sh - echo HOST="${HOST}" - echo DEP_OPTS="${DEP_OPTS}" - if [[ "${HOST}" == "x86_64-apple-darwin" ]]; then - ./contrib/containers/guix/scripts/setup-sdk - fi - script: - - make -j$(nproc) -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/ci.Dockerfile - prefix: ${CI_JOB_NAME} - paths: - - depends/built - - depends/sdk-sources - artifacts: - name: depends-${CI_JOB_NAME} - when: on_success - paths: - - depends/$HOST - - depends/SDKs - -.base-template: - image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG - rules: - - if: '$BUILD_TARGETS == null || $BUILD_TARGETS == "" || $BUILD_TARGET =~ $BUILD_TARGETS' - when: on_success - - when: never - before_script: - - export CACHE_DIR=$CI_PROJECT_DIR/cache - - echo BUILD_TARGET=$BUILD_TARGET - - echo BUILD_TARGETS="${BUILD_TARGETS}" - - source ./ci/dash/matrix.sh - - echo HOST=${HOST} - - echo DEP_OPTS=${DEP_OPTS} - - # 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. - if [[ $CI_COMMIT_REF_NAME = "master" ]] || [[ $CI_COMMIT_REF_NAME = "develop" ]] || [[ $CI_COMMIT_REF_NAME =~ ^v([0-9]{1,2}\.)*x$ ]]; then - # These names are reserved for protected branches - export PULL_REQUEST="false" - else - # Everything else including experemental "feat/smth" branches must be merged via PRs, treat them as such - 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)" - 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 - variables: - CCACHE_SIZE: "400M" - 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/ci.Dockerfile - prefix: ${CI_JOB_NAME} - paths: - - cache/ccache - artifacts: - name: build-${BUILD_TARGET} - when: always - paths: - - build-ci - # Exclude some less important binaries to reduce the size of the artifacts - exclude: - - build-ci/dashcore-$BUILD_TARGET/src/**/*.a - - build-ci/dashcore-$BUILD_TARGET/src/**/*.o - - 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 - cache: - # Let all branches share the same cache, which is ok because get_previous_releases.py extracts release binaries in separate folders - key: - files: - # CI files where $PREVIOUS_RELEASES_TO_DOWNLOAD is defined - - ci/test/00_setup_env_native_qt5.sh - prefix: ${CI_JOB_NAME} - paths: - - releases - after_script: - - mkdir -p $CI_PROJECT_DIR/testlogs - artifacts: - name: testlogs - when: always - paths: - - testlogs - expire_in: 3 days - -### - -arm-linux-gnueabihf: - extends: .build-depends-template - variables: - BUILD_TARGET: arm-linux - -x86_64-w64-mingw32: - extends: - - .build-depends-template - variables: - BUILD_TARGET: win64 - -x86_64-pc-linux-gnu: - extends: .build-depends-template - variables: - BUILD_TARGET: linux64 - -x86_64-pc-linux-gnu_nowallet: - extends: - - .build-depends-template - variables: - BUILD_TARGET: linux64_nowallet - -x86_64-pc-linux-gnu_multiprocess: - extends: - - .build-depends-template - variables: - BUILD_TARGET: linux64_multiprocess - -x86_64-apple-darwin: - extends: - - .build-depends-template - variables: - BUILD_TARGET: mac - -### - -arm-linux-build: - extends: .build-template - needs: - - arm-linux-gnueabihf - variables: - BUILD_TARGET: arm-linux - -win64-build: - extends: - - .build-template - needs: - - x86_64-w64-mingw32 - variables: - BUILD_TARGET: win64 - -linux64-build: - extends: .build-template - needs: - - x86_64-pc-linux-gnu - variables: - BUILD_TARGET: linux64 - -linux64_sqlite-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu - variables: - BUILD_TARGET: linux64_sqlite - -linux64_fuzz-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu - variables: - BUILD_TARGET: linux64_fuzz - -#linux64_asan-build: -# extends: -# - .build-template -# needs: -# - x86_64-pc-linux-gnu -# variables: -# BUILD_TARGET: linux64_asan - -linux64_tsan-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu_multiprocess - variables: - BUILD_TARGET: linux64_tsan - -linux64_ubsan-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu - variables: - BUILD_TARGET: linux64_ubsan - -linux64_nowallet-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu_nowallet - variables: - BUILD_TARGET: linux64_nowallet - -linux64_multiprocess-build: - extends: - - .build-template - needs: - - x86_64-pc-linux-gnu_multiprocess - variables: - BUILD_TARGET: linux64_multiprocess - -#linux64_valgrind-build: -# extends: -# - .build-template -# needs: -# - x86_64-pc-linux-gnu -# variables: -# BUILD_TARGET: linux64_valgrind - -mac-build: - extends: - - .build-template - needs: - - x86_64-apple-darwin - variables: - BUILD_TARGET: mac - -### - -linux64-test: - extends: .test-template - needs: - - linux64-build - variables: - BUILD_TARGET: linux64 - -linux64_sqlite-test: - extends: - - .test-template - needs: - - linux64_sqlite-build - variables: - BUILD_TARGET: linux64_sqlite - -#linux64_asan-test: -# extends: -# - .test-template -# needs: -# - linux64_asan-build -# variables: -# BUILD_TARGET: linux64_asan - -linux64_tsan-test: - extends: - - .test-template - needs: - - linux64_tsan-build - variables: - BUILD_TARGET: linux64_tsan - -linux64_ubsan-test: - extends: - - .test-template - needs: - - linux64_ubsan-build - variables: - BUILD_TARGET: linux64_ubsan - -linux64_multiprocess-test: - extends: - - .test-template - needs: - - linux64_multiprocess-build - variables: - BUILD_TARGET: linux64_multiprocess - -linux64_nowallet-test: - extends: - - .test-template - needs: - - linux64_nowallet-build - variables: - BUILD_TARGET: linux64_nowallet - -#linux64_valgrind-test: -# extends: -# - .test-template -# needs: -# - linux64_valgrind-build -# variables: -# BUILD_TARGET: linux64_valgrind diff --git a/README.md b/README.md index 712272523e7b..11875daf7a11 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ Dash Core staging tree =========================== -| Source | `master` | `develop` | -| -------------- | -------- | --------- | -| GitHub Actions | [![Build Status](https://github.com/dashpay/dash/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/dashpay/dash/tree/master) | [![Build Status](https://github.com/dashpay/dash/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/dashpay/dash/tree/develop) | -| GitLab CI | [![Build Status](https://gitlab.com/dashpay/dash/badges/master/pipeline.svg?key_text=CI&key_width=40)](https://gitlab.com/dashpay/dash/-/tree/master) | [![Build Status](https://gitlab.com/dashpay/dash/badges/develop/pipeline.svg?key_text=CI&key_width=40)](https://gitlab.com/dashpay/dash/-/tree/develop) | +| `master` | `develop` | +| -------- | --------- | +| [![Build Status](https://github.com/dashpay/dash/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/dashpay/dash/tree/master) | [![Build Status](https://github.com/dashpay/dash/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/dashpay/dash/tree/develop) | https://www.dash.org