Commit Graph

270 Commits

Author SHA1 Message Date
Darren Tucker 4512047f57 More compact representation of config matrix. 2021-02-17 21:47:48 +11:00
Darren Tucker 0406cd09f0 Skip unit tests on hosted VMs to speed things up. 2021-02-17 21:19:18 +11:00
Darren Tucker 4582612e61 Merge macos and ubuntu tests. 2021-02-17 20:46:03 +11:00
Darren Tucker 09f4b84654 Convert most github hosted tests to new config structure. 2021-02-17 20:46:03 +11:00
Darren Tucker 65380ff7e0 Only run selfhosted tests from selfhosted repo. 2021-02-17 18:27:36 +11:00
Darren Tucker f031366535 Add self-hosted runners for VMs of other platforms.
Github only hosts a limited number of platforms, and the runner code
is only supported on slightly wider range of platforms.  To increase
our test coverage beyond that, we run the runner natively on a VM host,
where it runs a jobs that boot VMs of other platforms, waits for them
to come up then runs the build and test by ssh'ing into the guest.
This means that the minimum dependencies for the guests are quite low
(basically just sshd, a compiler and make).

The interface to the VM host is fairly simple (basically 3 scripts:
vmstartup, vmrun and vmshutdown), but those are specific to the VM host
so are not in the public repo.  We also mount the working directory on the
host via sshfs, so things like artifact upload by the runner also work.

As part of this we are moving the per-test-target configs into a single
place (.github/configs) where there will be referenced by a single short
"config" key.  I plan to make the github-hosted runners use this too.

The self-hosted runners are run off a private repo on github since that
prevents third parties from accessing them[0], and since runner quota is
limited on private repos, we avoid running the tests we run on the public
repo.

[0] https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories
2021-02-17 18:20:40 +11:00
Darren Tucker 3d59e88c0e make with -j2 to use available CPUs. 2021-01-28 20:55:16 +11:00
Darren Tucker 66dd9ddb5d Add test against openssl head and libressl head. 2021-01-28 15:04:01 +11:00
Darren Tucker 237dbb34e2 Remove whitespace. 2021-01-28 14:35:41 +11:00
Darren Tucker bba229b6f3 Install moduli file before tests.
Reduces warnings during test runs.
2021-01-27 12:34:07 +11:00
Darren Tucker 1b83185593 Run one test with -Werror to catch warnings. 2021-01-27 11:58:26 +11:00
Darren Tucker 8635e7df7e Merge Mac OS X targets into a single config. 2021-01-13 18:00:57 +11:00
Darren Tucker ac112ade99 Add Mac OS X test targets. 2021-01-12 19:33:27 +11:00
Darren Tucker b744914fcb Add test against Graphene hardened malloc. 2021-01-09 00:36:05 +11:00
Darren Tucker 309b642e14 Run tests with sudo for better coverage. 2021-01-08 15:50:41 +11:00
Darren Tucker c336644351 Add Ubuntu 16.04 and 20.04 test targets. 2021-01-08 15:49:06 +11:00
Darren Tucker a09e98dcae Output test debug logs on failure. 2020-08-07 15:37:37 +10:00
Darren Tucker eb122b1eeb Add ability to specify exact test target. 2020-08-07 15:24:55 +10:00
Darren Tucker 651bb3a319 Add without-openssl without-zlib test target. 2020-08-07 14:26:20 +10:00
Stefan Schindler 9499f2bb01 Add CI with prepare script
* Only use heimdal kerberos implementation
* Fetch yubico/libfido2 (see: https://github.com/Yubico/libfido2)
* Add one target for
    * all features
    * each feature alone
    * no features
2020-08-06 00:01:41 +02:00