dash/ci
MarcoFalke bd85d875f3 Merge #18798: ci: Fix default retry script usage
45615de26caa4c8ffeacc558143aaf6887cbb314 ci: Fix default retry script usage (Hennadii Stepanov)

Pull request description:

  On master (5352d14b3796d9e672a20ada8f7613a70fe448f4) `CI_RETRY_EXE=${CI_RETRY_EXE:retry}` works as a [Substring Expansion](https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html), and that is wrong.
  If `CI_RETRY_EXE` variable was unset initially, its new value becomes an empty string, but not "retry" as one could expect. Consequently, the `${CI_RETRY_EXE} ...` command does _not_ use `ci/retry/retry` script.

  This PR makes for `CI_RETRY_EXE` variable a usual parameter expansion, i.e., `${parameter:-word}`.

  Reference: https://github.com/bitcoin/bitcoin/pull/18735#issuecomment-620095489

Top commit has no ACKs.

Tree-SHA512: 108173f6b2677979b9ddf2f9b9df4a6c56f5efa81c36543a1816bb3b984e42984bf3c83fe413ea3a5ca1e2317c4efb02fea7180a6b44863af7cfe6202e9cf94d
2022-04-03 18:08:59 -05:00
..
dash fuzz: add gitlab build support, use clang 2022-03-17 19:23:55 +05:30
extended_lint merge bitcoin#16582: Rework ci (Use travis only as fallback env) 2022-02-12 19:24:32 +05:30
lint merge bitcoin#13728: Run the CI lint stage on mac 2022-02-12 19:24:32 +05:30
retry Merge #17284: build: update retry to current version 2022-04-03 18:08:40 -05:00
test Merge #18798: ci: Fix default retry script usage 2022-04-03 18:08:59 -05:00
README.md merge bitcoin#16623: Add environment files for all settings 2022-02-12 19:24:32 +05:30
test_run_all.sh merge bitcoin#16623: Add environment files for all settings 2022-02-12 19:24:32 +05:30

ci scripts

This directory contains scripts for each build step in each build stage.

Currently three stages lint, extended_lint and test are defined. Each stage has its own lifecycle, similar to the Travis CI lifecycle. Every script in here is named and numbered according to which stage and lifecycle step it belongs to.

Running a stage locally

To allow for a wide range of tested environments, but also ensure reproducibility to some extent, the test stage requires docker to be installed. To install all requirements on Ubuntu, run

sudo apt install docker.io ccache bash git

To run the default test stage,

./ci/test_run_all.sh

To run the test stage with a specific configuration,

FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh

Be aware that the tests will be build and run in-place, so please run at your own risk. If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first.