Skip to content

Commit

Permalink
Merge bitcoin#19424: ci: Run tsan ci config on cirrus
Browse files Browse the repository at this point in the history
fa8e6df ci: Run tsan ci config on cirrus (MarcoFalke)

Pull request description:

  Fixes bitcoin-core/gui#12

  Copied description from bitcoin#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 fa8e6df - 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
  • Loading branch information
MarcoFalke authored and knst committed Jan 13, 2024
1 parent d332a9c commit 9f24549
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
16 changes: 14 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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:
Expand All @@ -32,6 +35,15 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
ci_script:
- ./ci/test_run_all.sh


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
Expand Down
4 changes: 0 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,6 @@ after_success:
env: >-
FILE_ENV="./ci/test/00_setup_env_native_qt5.sh"
# x86_64 Linux (xenial, no depends, only system libs, sanitizers: thread (TSan))
- 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] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
Expand Down

0 comments on commit 9f24549

Please sign in to comment.