CI: docs update only. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916059 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 4c9abf8..a8500d2 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -266,6 +266,7 @@
# APR_VERSION=1.7.0
# APU_VERSION=1.6.3
# APU_CONFIG="--with-crypto --with-ldap"
+ # -------------------------------------------------------------------------
- name: OpenSSL 3.1 build
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
env: |
@@ -273,6 +274,7 @@
APR_VERSION=1.7.4
APU_VERSION=1.6.3
APU_CONFIG="--without-crypto"
+ # -------------------------------------------------------------------------
- name: OpenSSL 3.1 -Werror build
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
notest-cflags: -Werror -O2 -Wno-deprecated-declarations
@@ -281,6 +283,7 @@
APR_VERSION=1.7.4
APU_VERSION=1.6.3
APU_CONFIG="--without-crypto"
+ # -------------------------------------------------------------------------
- name: OpenSSL 3.1 no-engine build
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
env: |
@@ -289,6 +292,7 @@
APR_VERSION=1.7.4
APU_VERSION=1.6.3
APU_CONFIG="--without-crypto"
+ # -------------------------------------------------------------------------
runs-on: ubuntu-latest
timeout-minutes: 30
env:
diff --git a/test/README.ci b/test/README.ci
index 4ae8247..4f2c0e3 100644
--- a/test/README.ci
+++ b/test/README.ci
@@ -1,4 +1,3 @@
-
Variables
---------
@@ -25,8 +24,9 @@
* MFLAGS - arguments to pass when running "make" for httpd.
-* SKIP_TESTING - if set, the Perl test framework is not run for the
- build.
+* SKIP_TESTING - if set, no testing is done at all
+
+* NO_TEST_FRAMEWORK - if set, the Perl test framework is not used
* TEST_UBSAN - set for job using UBSan ("Undefined Behaviour Sanitizer")
@@ -46,17 +46,34 @@
* CLEAR_CACHE - if set, the cached $HOME/root is removed before each build
-Caching -- NOTE, BROKEN IN GITHUB ACTIONS --
+Caching
-------
-Perl modules installed in $HOME/perl5 are cached.
+Caching was designed in Travis then migrated to GitHub Actions, and
+should probably be redone from scratch.
-Anything installed into the $HOME/root directory is cached - notably,
-versions of APR/APR-util are installed here and cached across httpd
-build jobs without needing to be rebuilt every time.
+Caches in GHA are immutable. Currently the ~/perl5 and ~/root
+directories are cached (separately) for each unique job configuration,
+which is identified by the $JOBID variable. $JOBID is a hash of the
+variables defined in the matrix.
-The cached installs of APR/APR-util are refreshed if the
-last-changed-revision of the build is stale.
+Hence, if e.g. the APR_VERSION or APR_CONFIG changes, a different
+cache key will be used for future builds, but while it remains the
+same the cached install can be used across builds.
+
+This does not work optimally for e.g. APR_VERSION=trunk - in this
+case, a trunk build of APR is built and cached (assuming the job
+succeeds). Once the trunk revision changes, install_apx() will see the
+cached trunk install is stale and throw it away for every single
+subsequent job; the cache is never updated.
+
+(Similarly for CPAN - the cached version of ~/perl5 for each job will
+increasingly become stale over time as the version in CPAN changes
+from whatever was cached for the first build.)
+
+The solution (TBD) is likely to incorporate the versions of whatever
+is cached into the keys as in the example documentation:
+https://github.com/actions/cache/blob/main/examples.md
If APR_VERSION and APU_VERSION are both set to 1.x versions, then
CLEAR_CACHE should also be set to disable APR* caching. APR-util can
@@ -67,17 +84,11 @@
Travis to Github Actions Migration TODO
---------------------------------------
-* better path filtering so e.g. CHANGES changes don't trigger CI
+* enable ACME/mod_md testing
* support branch conditionals again (some tests are 2.4.x only, some trunk only)
-* make caching work properly for APR + CPAN modules
- - this is using the wrong model at the moment
- - the cache key needs to be based off (source code, job configuration)
- - rather than done on the fly in test/travis_before_linux.sh
- - pebble + Rustls builds should also be cached
-* turn on failure notifications?
* test across different Ubuntu versions again
- and test against OpenSSL 1.x since we're now ONLY building against 3.x
-* update the docs below for testing from PRs/feature branches
+* container testing for non-Ubuntu hosts
* introduce some job ordering rather than having a flat/concurrent
set, if the default "./configure && make && test" works *then* start
jobs doing 200 different variations on ./configure --enable-XXX