CONTRIBUTING: add CI information
authorPaul Spooren <mail@aparcar.org>
Mon, 21 Sep 2020 05:36:02 +0000 (19:36 -1000)
committerPaul Spooren <mail@aparcar.org>
Wed, 30 Sep 2020 20:47:12 +0000 (10:47 -1000)
Describe briefly the details on the new runtime CI.

Signed-off-by: Paul Spooren <mail@aparcar.org>
CONTRIBUTING.md

index 02615f3126eb8acbf8ac220b73bebcd628cd9dd8..993915b93f85c636851dc601fc262bd43d750492 100644 (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
+```