Some builds print errors to stdout. As a consequence we can't jump a some specific test failure when an error is thrown, and the error message displayed to the user is the build tail.
This diff makes these build stop on first error, so that the build tail will contain the actual issue and the user won't need to look at the full teamcity build log.
Details
Details
- Reviewers
deadalnix - Group Reviewers
Restricted Project - Commits
- rABCa09e74275319: [CI] Fail fast the builds that print error to stdout
Edit 2 files to remove some braces, then:
./contrib/teamcity/build-configurations.py build-clang-tidy
Check the build stops after the first missing brace.
./contrib/teamcity/build-configurations.py build-clang-asan ./contrib/teamcity/build-configurations.py build-clang-ubsan ./contrib/teamcity/build-configurations.py build-clang-tsan
Diff Detail
Diff Detail
- Repository
- rABC Bitcoin ABC
- Branch
- ci_fail_fast
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 13485 Build 27001: Build Diff lint-circular-dependencies · build-diff · build-without-wallet · build-clang · build-clang-tidy Build 27000: arc lint + arc unit
Event Timeline
contrib/teamcity/build-configurations.yml | ||
---|---|---|
82 ↗ | (On Diff #24762) | This does exactly nothing. |
contrib/teamcity/build-configurations.py | ||
---|---|---|
191 | Well that's your problem. You want this on test suite running on master, but not on the one running on each diff. You can solve this whole thing durably by using sensible defaults. |
Comment Actions
The sanitizer output is printed to console (we use to have it in a log file but it was difficult to debug because it missed the context of when it ran, and the stack is sometimes a bit cryptic).
When a sanitizer issue occurs, you might need to scroll through all the log to find the printed issue. By making it fail fast, the error will be located close to the end of the log and easy to spot.