CONTRIBUTING: add CI information

Describe briefly the details on the new runtime CI.

Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit is contained in:
Paul Spooren 2020-09-20 19:36:02 -10:00
parent fe19272b38
commit 85b7750327
1 changed files with 35 additions and 0 deletions

View File

@ -181,3 +181,38 @@ commenting and amending the proposed changes.
| OpenSSL License | OpenSSL |
| X11 License | X11 |
| zlib License | Zlib |
## Continuous Integration
To simplify review and require less human resources, a CI tests all packages.
Passing CI tests are not a hard requirement but a good indicator what the
Buildbots will think about the proposed patch.
The CI builds modified packages for multiple architectures using the latest
snapshot SDK. For supported architectures (`aarch64_generic`,
`arm_cortex-a15_neon-vfpv4`, `i386_pentium4` and `x86_64`) an additional
runtime test is executed. A running OpenWrt is simulated which tries to install
created packages and runs a script called `test.sh` located next to the package
Makefile. The script is executed with the two arguments `PKG_NAME` and
`PKG_VERSION`. The `PKG_NAME` can be used to distinguish package variants, e.g.
`foobar` vs. `foobar-full`. The `PKG_VERSION` can be used for a trivial test
checking if `foobar --version` prints the correct version. `PKG_VERSION` is the
OpenWrt version and therefore includes the `PKG_RELEASE`, which isn't usually
part of the running programs version.
The following snippet show a script that tests different binaries, depending
what IPK package was installed. The `gpsd` Makefile produces both a `gpsd` and
a `gpsd-clients` IPK package.
```shell
#!/bin/sh
case "$1" in
"gpsd")
gpsd -V 2>&1 | grep "$2"
;;
"gpsd-clients")
cgps -V 2>&1 | grep "$2"
;;
esac
```