This commit is contained in:
Alexander Wang 2022-12-30 10:04:43 -08:00
parent 9aca3e2c0b
commit 01742b7400
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE
2 changed files with 16 additions and 7 deletions

2
ci/sub

@ -1 +1 @@
Subproject commit 79b9dadce090a95b5a50d32f9ea3927845e5cce1 Subproject commit b1ec0a8d430a62b7556211ed8bcd7b6e41e2362c

View file

@ -22,6 +22,20 @@ Most of D2's CI is open sourced in its own
workflows. E.g. run `./make.sh fmt` to run the formatter. Please make sure all CI is workflows. E.g. run `./make.sh fmt` to run the formatter. Please make sure all CI is
passing for any PRs. passing for any PRs.
Most of the CI scripts rely on a submodule shared between many D2 repositories:
[https://github.com/terrastruct/ci](https://github.com/terrastruct/ci). You should fetch
the submodule whenever it differs:
```sh
git submodule update --recursive
```
If running for the first time for a repo (e.g. new clone), add `--init`:
```sh
git submodule update --init --recursive
```
## Flow ## Flow
The simplified D2 flow at a package level looks like: The simplified D2 flow at a package level looks like:
@ -54,7 +68,7 @@ start work on an Issue, please leave a comment so others know that it's being wo
### Tests ### Tests
All code changes must include tests. D2 mostly has functional tests (see `e2etests` directory), and uses All code changes must include tests. D2 mostly has functional tests, and uses
[diff](https://github.com/terrastruct/diff) as a framework that gives Git-style [diff](https://github.com/terrastruct/diff) as a framework that gives Git-style
comparisons of expected vs actual output for each stage. There are ample examples in each comparisons of expected vs actual output for each stage. There are ample examples in each
package of this -- try changing some test and run it to see. package of this -- try changing some test and run it to see.
@ -82,11 +96,6 @@ Run: `./ci/test.sh`
CI runs tests with `-race` to catch potential race conditions. It's much slower, but if CI runs tests with `-race` to catch potential race conditions. It's much slower, but if
your machine can run it locally, you can do so with `./make.sh race`. your machine can run it locally, you can do so with `./make.sh race`.
If you had to change/add functional test cases (under `e2etests` directory), make sure
you updated them before opening a PR.
Run: `TESTDATA_ACCEPT=1 ./ci/test.sh` or `TA=1 ./ci/test.sh` for a shorter version.
#### Chaos tests #### Chaos tests
D2 has [chaos tests](https://en.wikipedia.org/wiki/Chaos_engineering) which produce random D2 has [chaos tests](https://en.wikipedia.org/wiki/Chaos_engineering) which produce random