aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2020-07-03 07:40:27 -0400
committerMarcoFalke <falke.marco@gmail.com>2020-07-03 07:40:43 -0400
commit3276c148c4cac7b7c9adbaab5997b26488612085 (patch)
tree54915d21a775a422eb2ab6b19cb84cc697357fd6
parent915ac8a86192b10b753ce774a7d7c51c70a385f8 (diff)
parentfa8e6df282af0d396d75b03721f1b59a520ced19 (diff)
downloadbitcoin-3276c148c4cac7b7c9adbaab5997b26488612085.tar.xz
Merge #19424: ci: Run tsan ci config on cirrus
fa8e6df282af0d396d75b03721f1b59a520ced19 ci: Run tsan ci config on cirrus (MarcoFalke) Pull request description: Fixes bitcoin-core/gui#12 Copied description from #19321: Currently it is not possible to use travis in forked repositories due to the 50 minute limit on builds. A fresh build (uncached) of the thread sanitizer config takes more than 50 minutes. One approach to fix this could be to throw away tests until the run time is less than 50 minutes. However, the risk of being blind of failures in the thrown away tests is not worth the gain. Also, to detect them, one has to run the tsan configuration nightly and failures could only be detected post-merge. Another approach would be to ask travis support to raise the limit for a forked repository. This is a tedious and manual one-by-one process, so I'd rather not. Finally, a different ci provider can be used, since the config files are designed to be platform-agnostic. This is what I picked. I kept all settings identical to the travis machine for now. Both providers run in the google cloud, so this should be a "move-only". ACKs for top commit: fanquake: ACK fa8e6df282af0d396d75b03721f1b59a520ced19 - my understanding is that test coverage remains the same. Just swapping providers to work-around the Travis time-limit in other repos. Tree-SHA512: 26fed248a4f743107160d3b9e5df57fa0be280fd065ae6fece83d254f59d58ccf3e11a245519d158da109c47b053f62ee8756215008541973c65dc28c4efb748
-rw-r--r--.cirrus.yml16
-rw-r--r--.travis.yml5
2 files changed, 14 insertions, 7 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 9c2598d606..446d3e35a9 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,4 +1,5 @@
-# Global defaults
+### Global defaults
+
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
container:
# https://cirrus-ci.org/faq/#are-there-any-limits
@@ -12,7 +13,9 @@ env:
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
CCACHE_SIZE: "200M"
CCACHE_DIR: "/tmp/ccache_dir"
-# Global task template
+
+### Global task template
+
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
global_task_template: &GLOBAL_TASK_TEMPLATE
ccache_cache:
@@ -31,6 +34,7 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
ci_script:
- ./ci/test_run_all.sh
+
#task:
# name: "Windows"
# windows_container:
@@ -48,6 +52,14 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
# - choco install python --version=3.7.7 -y
task:
+ name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: thread (TSan), no gui]'
+ << : *GLOBAL_TASK_TEMPLATE
+ container:
+ image: ubuntu:focal
+ env:
+ FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
+
+task:
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
<< : *GLOBAL_TASK_TEMPLATE
container:
diff --git a/.travis.yml b/.travis.yml
index 9184257d47..783737c8c1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -100,11 +100,6 @@ jobs:
FILE_ENV="./ci/test/00_setup_env_native_qt5.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: thread (TSan), no gui]'
- env: >-
- FILE_ENV="./ci/test/00_setup_env_native_tsan.sh"
-
- - stage: test
name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: memory (MSan)]'
env: >-
FILE_ENV="./ci/test/00_setup_env_native_msan.sh"