Skip to content

Commit 2a44f2e

Browse files
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
2 parents f217e0a + ae74ad0 commit 2a44f2e

23 files changed

+135
-328
lines changed

.cirrus.yml

Lines changed: 68 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
### Global defaults
22

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

19-
### Global task template
20-
2112
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
22-
global_task_template: &GLOBAL_TASK_TEMPLATE
13+
base_template: &BASE_TEMPLATE
2314
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
15+
merge_base_script:
16+
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
17+
- bash -c "$PACKAGE_MANAGER_INSTALL git"
18+
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
19+
- git config --global user.email "[email protected]"
20+
- git config --global user.name "ci"
21+
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
22+
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks
23+
24+
global_task_template: &GLOBAL_TASK_TEMPLATE
25+
<< : *BASE_TEMPLATE
26+
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
27+
container:
28+
# https://cirrus-ci.org/faq/#are-there-any-limits
29+
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
30+
cpu: 2
31+
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
32+
kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see https://github.com/bitcoin/bitcoin/issues/20093
2433
ccache_cache:
2534
folder: "/tmp/ccache_dir"
2635
depends_built_cache:
@@ -29,19 +38,29 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
2938
folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
3039
depends_releases_cache:
3140
folder: "/tmp/cirrus-ci-build/releases"
32-
merge_base_script:
33-
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
34-
- bash -c "$PACKAGE_MANAGER_INSTALL git"
35-
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
36-
- git config --global user.email "[email protected]"
37-
- git config --global user.name "ci"
38-
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
3941
ci_script:
4042
- ./ci/test_run_all.sh
4143

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

4350
task:
44-
name: 'ARM [GOAL: install] [buster] [unit tests, no functional tests]'
51+
name: 'lint [bionic]'
52+
<< : *BASE_TEMPLATE
53+
container:
54+
image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md
55+
cpu: 1
56+
memory: 1G
57+
# For faster CI feedback, immediately schedule the linters
58+
<< : *CREDITS_TEMPLATE
59+
lint_script:
60+
- ./ci/lint_run_all.sh
61+
62+
task:
63+
name: 'ARM [unit tests, no functional tests] [buster]'
4564
<< : *GLOBAL_TASK_TEMPLATE
4665
arm_container:
4766
image: debian:buster
@@ -52,74 +71,93 @@ task:
5271
QEMU_USER_CMD: "" # Disable qemu and run the test natively
5372

5473
task:
55-
name: 'Win64 [GOAL: deploy] [unit tests, no gui, no boost::process, no functional tests]'
74+
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [bionic]'
5675
<< : *GLOBAL_TASK_TEMPLATE
5776
container:
58-
image: ubuntu:bionic
77+
image: ubuntu:focal
5978
env:
6079
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
6180

6281
task:
63-
name: 'x86_64 Linux [GOAL: install] [focal] [previous releases, uses qt5 dev package and some depends packages] [unsigned char]'
82+
name: '32-bit + dash [gui] [CentOS 8]'
83+
<< : *GLOBAL_TASK_TEMPLATE
84+
container:
85+
image: centos:8
86+
env:
87+
PACKAGE_MANAGER_INSTALL: "yum install -y"
88+
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
89+
90+
task:
91+
name: '[previous releases, uses qt5 dev package and some depends packages] [unsigned char] [focal]'
92+
# For faster CI feedback, immediately schedule a task that compiles most modules
93+
<< : *CREDITS_TEMPLATE
6494
<< : *GLOBAL_TASK_TEMPLATE
6595
container:
6696
image: ubuntu:focal
6797
env:
6898
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"
6999

70100
task:
71-
name: 'x86_64 Linux [GOAL: install] [lunar] [depends, sanitizers: thread (TSan), no gui]'
101+
name: '[depends, sanitizers: thread (TSan), no gui] [lunar]'
72102
<< : *GLOBAL_TASK_TEMPLATE
73103
container:
74104
image: ubuntu:lunar
75-
cpu: 4 # Double CPU and Memory to avoid timeout
76-
memory: 16G
105+
cpu: 4 # Double CPU and increase Memory to avoid timeout
106+
memory: 24G
77107
env:
78108
MAKEJOBS: "-j8"
79109
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
80110

81111
task:
82-
name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: memory (MSan)]'
112+
name: '[depends, sanitizers: memory (MSan)] [focal]'
83113
<< : *GLOBAL_TASK_TEMPLATE
84114
container:
85115
image: ubuntu:focal
86116
env:
87117
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
88118

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

97127
task:
98-
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
128+
name: '[no depends, sanitizers: fuzzer,address,undefined] [focal]'
99129
<< : *GLOBAL_TASK_TEMPLATE
100130
container:
101131
image: ubuntu:focal
102132
env:
103133
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
104134

105135
task:
106-
name: 'x86_64 Linux [GOAL: install] [focal] [multiprocess]'
136+
name: '[multiprocess] [focal]'
107137
<< : *GLOBAL_TASK_TEMPLATE
108138
container:
109139
image: ubuntu:focal
110140
env:
111141
FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh"
112142

113143
task:
114-
name: 'macOS 10.12 [GOAL: deploy] [no functional tests]'
144+
name: '[no wallet] [focal]'
145+
<< : *GLOBAL_TASK_TEMPLATE
146+
container:
147+
image: ubuntu:focal
148+
env:
149+
FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"
150+
151+
task:
152+
name: 'macOS 10.12 [gui, no tests] [bionic]'
115153
<< : *GLOBAL_TASK_TEMPLATE
116154
container:
117155
image: ubuntu:focal
118156
env:
119157
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
120158

121159
task:
122-
name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]'
160+
name: 'macOS 10.15 native [gui] [no depends]'
123161
macos_brew_addon_script:
124162
- brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt
125163
<< : *GLOBAL_TASK_TEMPLATE

.travis.yml

Lines changed: 0 additions & 191 deletions
This file was deleted.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ There are also [regression and integration tests](/test), written
6262
in Python.
6363
These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py`
6464

65-
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.
65+
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS,
66+
and that unit/sanity tests are run automatically.
6667

6768
### Manual Quality Assurance (QA) Testing
6869

0 commit comments

Comments
 (0)