Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…0451, bitcoin#20543, bitcoin#20545, bitcoin#20572, bitcoin#20615, bitcoin#20658, bitcoin#20680, bitcoin#20682, bitcoin#20691, bitcoin#20697, bitcoin#20817, partial bitcoin#20451

ae74ad0 Merge bitcoin#20817: lint: update list of spelling linter false positives, bump to codespell 2.0.0 (fanquake)
ab430bd partial Merge bitcoin#20451: lint: run mypy over contrib/devtools (Wladimir J. van der Laan)
3231ad2 Merge bitcoin#19983: Drop some TSan suppressions (MarcoFalke)
802cb95 Merge bitcoin#20697: ci: Fix COMMIT_RANGE variable value for PRs (MarcoFalke)
53ca879 Merge bitcoin#20682: ci: Install missing lint packages (MarcoFalke)
2021969 chore: drop travis mentioning in docs and comments (Konstantin Akimov)
8daef64 Merge bitcoin#20691: ci, doc: Travis CI features and mentions cleanup (MarcoFalke)
8694479 Merge bitcoin#20680: ci: Only use credits for pull requests to the main repo (MarcoFalke)
9d824de Merge bitcoin#20658: ci: Move linter task to cirrus (MarcoFalke)
955fc41 Merge bitcoin#20615: cirrus: Schedule one task with paid credits for faster CI feedback (Wladimir J. van der Laan)
5d66d57 Merge bitcoin#20572: ci: Adjust Cirrus CI task names (follow up) (MarcoFalke)
d11e379 Merge bitcoin#20545: ci: Adjust cirrus ci task names (MarcoFalke)
2fa526b Merge bitcoin#20543: ci: no-longer exclude feature_block in TSAN job (MarcoFalke)
fcb4c20 Merge bitcoin#19179: ci: Run ci configs on cirrus (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Backports from bitcoin v22, mostly CI related, other to improve lints
  CI related changes are not really important because we use gitlab runner instead cirrus, but keep them up to date for sake of codebase unification.

  ## What was done?
   - bitcoin#19179
   - bitcoin#20543
   - bitcoin#20545
   - bitcoin#20572
   - bitcoin#20615
   - bitcoin#20658
   - bitcoin#20680
   - bitcoin#20691
   - bitcoin#20682
   - bitcoin#20697
   - bitcoin#19983
   - partial bitcoin#20451
   - bitcoin#20817

  ## How Has This Been Tested?
  Run unit/functional tests

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

Top commit has no ACKs.

Tree-SHA512: 5faffe15a75b78a9ea32b49f2371d6ff70c319a983c7a2b4ca6792ba3ea03f2170bacf5c255151da650948ad279c456475151d0db7dcd708eae540b30d88a05e
  • Loading branch information
PastaPastaPasta committed Mar 27, 2024
2 parents f217e0a + ae74ad0 commit 2a44f2e
Show file tree
Hide file tree
Showing 23 changed files with 135 additions and 328 deletions.
98 changes: 68 additions & 30 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
### Global defaults

timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
container:
# https://cirrus-ci.org/faq/#are-there-any-limits
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
cpu: 2
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see https://github.com/bitcoin/bitcoin/issues/20093
env:
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
MAKEJOBS: "-j4"
Expand All @@ -16,11 +9,27 @@ env:
CCACHE_SIZE: "200M"
CCACHE_DIR: "/tmp/ccache_dir"

### Global task template

# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
global_task_template: &GLOBAL_TASK_TEMPLATE
base_template: &BASE_TEMPLATE
skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
merge_base_script:
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- bash -c "$PACKAGE_MANAGER_INSTALL git"
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
- git config --global user.email "[email protected]"
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks

global_task_template: &GLOBAL_TASK_TEMPLATE
<< : *BASE_TEMPLATE
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
container:
# https://cirrus-ci.org/faq/#are-there-any-limits
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
cpu: 2
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see https://github.com/bitcoin/bitcoin/issues/20093
ccache_cache:
folder: "/tmp/ccache_dir"
depends_built_cache:
Expand All @@ -29,19 +38,29 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
depends_releases_cache:
folder: "/tmp/cirrus-ci-build/releases"
merge_base_script:
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- bash -c "$PACKAGE_MANAGER_INSTALL git"
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
- git config --global user.email "[email protected]"
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
ci_script:
- ./ci/test_run_all.sh

compute_credits_template: &CREDITS_TEMPLATE
# https://cirrus-ci.org/pricing/#compute-credits
# Only use credits for pull requests to the main repo
use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'dashpay/dash' && $CIRRUS_PR != ""


task:
name: 'ARM [GOAL: install] [buster] [unit tests, no functional tests]'
name: 'lint [bionic]'
<< : *BASE_TEMPLATE
container:
image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md
cpu: 1
memory: 1G
# For faster CI feedback, immediately schedule the linters
<< : *CREDITS_TEMPLATE
lint_script:
- ./ci/lint_run_all.sh

task:
name: 'ARM [unit tests, no functional tests] [buster]'
<< : *GLOBAL_TASK_TEMPLATE
arm_container:
image: debian:buster
Expand All @@ -52,74 +71,93 @@ task:
QEMU_USER_CMD: "" # Disable qemu and run the test natively

task:
name: 'Win64 [GOAL: deploy] [unit tests, no gui, no boost::process, no functional tests]'
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:bionic
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_win64.sh"

task:
name: 'x86_64 Linux [GOAL: install] [focal] [previous releases, uses qt5 dev package and some depends packages] [unsigned char]'
name: '32-bit + dash [gui] [CentOS 8]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: centos:8
env:
PACKAGE_MANAGER_INSTALL: "yum install -y"
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"

task:
name: '[previous releases, uses qt5 dev package and some depends packages] [unsigned char] [focal]'
# For faster CI feedback, immediately schedule a task that compiles most modules
<< : *CREDITS_TEMPLATE
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"

task:
name: 'x86_64 Linux [GOAL: install] [lunar] [depends, sanitizers: thread (TSan), no gui]'
name: '[depends, sanitizers: thread (TSan), no gui] [lunar]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:lunar
cpu: 4 # Double CPU and Memory to avoid timeout
memory: 16G
cpu: 4 # Double CPU and increase Memory to avoid timeout
memory: 24G
env:
MAKEJOBS: "-j8"
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"

task:
name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: memory (MSan)]'
name: '[depends, sanitizers: memory (MSan)] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"

task:
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
name: '[no depends, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"

task:
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
name: '[no depends, sanitizers: fuzzer,address,undefined] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"

task:
name: 'x86_64 Linux [GOAL: install] [focal] [multiprocess]'
name: '[multiprocess] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh"

task:
name: 'macOS 10.12 [GOAL: deploy] [no functional tests]'
name: '[no wallet] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"

task:
name: 'macOS 10.12 [gui, no tests] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_mac.sh"

task:
name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]'
name: 'macOS 10.15 native [gui] [no depends]'
macos_brew_addon_script:
- brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt
<< : *GLOBAL_TASK_TEMPLATE
Expand Down
191 changes: 0 additions & 191 deletions .travis.yml

This file was deleted.

3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ There are also [regression and integration tests](/test), written
in Python.
These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py`

The Travis CI system makes sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS,
and that unit/sanity tests are run automatically.

### Manual Quality Assurance (QA) Testing

Expand Down
Loading

0 comments on commit 2a44f2e

Please sign in to comment.