1
-
2
1
Variables
3
2
---------
4
3
@@ -25,8 +24,9 @@ The CI scripts use the following environment variables:
25
24
26
25
* MFLAGS - arguments to pass when running "make" for httpd.
27
26
28
- * SKIP_TESTING - if set, the Perl test framework is not run for the
29
- build.
27
+ * SKIP_TESTING - if set, no testing is done at all
28
+
29
+ * NO_TEST_FRAMEWORK - if set, the Perl test framework is not used
30
30
31
31
* TEST_UBSAN - set for job using UBSan ("Undefined Behaviour Sanitizer")
32
32
@@ -46,17 +46,34 @@ The CI scripts use the following environment variables:
46
46
47
47
* CLEAR_CACHE - if set, the cached $HOME/root is removed before each build
48
48
49
- Caching -- NOTE, BROKEN IN GITHUB ACTIONS --
49
+ Caching
50
50
-------
51
51
52
- Perl modules installed in $HOME/perl5 are cached.
52
+ Caching was designed in Travis then migrated to GitHub Actions, and
53
+ should probably be redone from scratch.
54
+
55
+ Caches in GHA are immutable. Currently the ~/perl5 and ~/root
56
+ directories are cached (separately) for each unique job configuration,
57
+ which is identified by the $JOBID variable. $JOBID is a hash of the
58
+ variables defined in the matrix.
59
+
60
+ Hence, if e.g. the APR_VERSION or APR_CONFIG changes, a different
61
+ cache key will be used for future builds, but while it remains the
62
+ same the cached install can be used across builds.
63
+
64
+ This does not work optimally for e.g. APR_VERSION=trunk - in this
65
+ case, a trunk build of APR is built and cached (assuming the job
66
+ succeeds). Once the trunk revision changes, install_apx() will see the
67
+ cached trunk install is stale and throw it away for every single
68
+ subsequent job; the cache is never updated.
53
69
54
- Anything installed into the $HOME/root directory is cached - notably,
55
- versions of APR/APR-util are installed here and cached across httpd
56
- build jobs without needing to be rebuilt every time.
70
+ (Similarly for CPAN - the cached version of ~/perl5 for each job will
71
+ increasingly become stale over time as the version in CPAN changes
72
+ from whatever was cached for the first build.)
57
73
58
- The cached installs of APR/APR-util are refreshed if the
59
- last-changed-revision of the build is stale.
74
+ The solution (TBD) is likely to incorporate the versions of whatever
75
+ is cached into the keys as in the example documentation:
76
+ https://github.com/actions/cache/blob/main/examples.md
60
77
61
78
If APR_VERSION and APU_VERSION are both set to 1.x versions, then
62
79
CLEAR_CACHE should also be set to disable APR* caching. APR-util can
@@ -67,17 +84,11 @@ cached, fresh APR plus a cached but stale APR-util)
67
84
Travis to Github Actions Migration TODO
68
85
---------------------------------------
69
86
70
- * better path filtering so e.g. CHANGES changes don't trigger CI
87
+ * enable ACME/mod_md testing
71
88
* support branch conditionals again (some tests are 2.4.x only, some trunk only)
72
- * make caching work properly for APR + CPAN modules
73
- - this is using the wrong model at the moment
74
- - the cache key needs to be based off (source code, job configuration)
75
- - rather than done on the fly in test/travis_before_linux.sh
76
- - pebble + Rustls builds should also be cached
77
- * turn on failure notifications?
78
89
* test across different Ubuntu versions again
79
90
- and test against OpenSSL 1.x since we're now ONLY building against 3.x
80
- * update the docs below for testing from PRs/feature branches
91
+ * container testing for non-Ubuntu hosts
81
92
* introduce some job ordering rather than having a flat/concurrent
82
93
set, if the default "./configure && make && test" works *then* start
83
94
jobs doing 200 different variations on ./configure --enable-XXX
0 commit comments