For continuous integration testing we have the following:
gitactions script which runs whenever a PR is pushed:
docker compose to start pebble (letsencrypt test server) and challtestsrv (minimal dns client for pebble)bats test scripts (all the files with a ".bats" extension) for each OS (alpine, centos6, debian, ubuntu)bats test script against the staging server (using ubuntu docker image and duckdns.org)Tests can also be triggered manually from the GitHub website.
For dynamic DNS tests, you need accounts on duckdns.org and dynu.com, and need to create 4 domain names in each account.
For duckdns.org:
For dynu.com:
For ACME DNS (also needs Dynu)
To run dynamic DNS tests outside the CI environment, you need accounts without <reponame> in the domain names. Export the environment variable corresponding to the secrets (with the same values).
For individual accounts, <reponame> is your github account name.
pebble and challtestsrv using docker compose up -d --buildtest/run-test.sh [<os>]test/run-test.sh ubuntu16pebble and challtestsrv using docker compose up -d --buildtest/run-test.sh <os> bats <bats test script>test/run-test.sh ubuntu bats /getssl/test/1-simple-http01.batspebble and challtestsrv using docker compose up -d --buildrun-test.sh <os> /getssl/test/debug-test.sh <getssl config file>test/run-test.sh ubuntu /getssl/test/debug-test.sh -d /getssl/test/test-config/getssl-http01.cfgtest/run-test.sh ubuntu /getssl/test/debug-test.sh -d getssl-http01.cfg)