dash/ci
fanquake 3b76f34edc Merge #21243: ci: Avoid invoking curl on the host
fa330d8fed5a02349440be170af3b443c1321b4b ci: Avoid invoking curl on the host (MarcoFalke)

Pull request description:

  The only requirement for the ci system are the programs `docker.io` and `bash`. However, the mac cross build invokes `curl` on the host. Fix that.

  Before:

  ```
  $ FILE_ENV="./ci/test/00_setup_env_mac.sh" ./ci/test_run_all.sh
  ...
  ./ci/test/05_before_script.sh: line 22: curl: command not found
  ```

  After:

  ```
  ... (command passes)

ACKs for top commit:
  promag:
    ACK fa330d8fed5a02349440be170af3b443c1321b4b.

Tree-SHA512: 49120fd671a48a6599dd6c34f6d3502a6e9f84b4476061cab06f55cba374d8188f53b9b41363e90f5fafb0074767b581f30bd2545c0b6934580a7eccfa1ef5c4
2022-04-05 23:10:05 -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 #21243: ci: Avoid invoking curl on the host 2022-04-05 23:10:05 -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.