Skip to content

Commit fed3652

Browse files
committed
CI: docs update only. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916059 13f79535-47bb-0310-9956-ffa450edef68
1 parent f65a498 commit fed3652

File tree

2 files changed

+33
-18
lines changed

2 files changed

+33
-18
lines changed

.github/workflows/linux.yml

+4
Original file line numberDiff line numberDiff line change
@@ -266,13 +266,15 @@ jobs:
266266
# APR_VERSION=1.7.0
267267
# APU_VERSION=1.6.3
268268
# APU_CONFIG="--with-crypto --with-ldap"
269+
# -------------------------------------------------------------------------
269270
- name: OpenSSL 3.1 build
270271
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
271272
env: |
272273
TEST_OPENSSL3=3.1.5
273274
APR_VERSION=1.7.4
274275
APU_VERSION=1.6.3
275276
APU_CONFIG="--without-crypto"
277+
# -------------------------------------------------------------------------
276278
- name: OpenSSL 3.1 -Werror build
277279
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
278280
notest-cflags: -Werror -O2 -Wno-deprecated-declarations
@@ -281,6 +283,7 @@ jobs:
281283
APR_VERSION=1.7.4
282284
APU_VERSION=1.6.3
283285
APU_CONFIG="--without-crypto"
286+
# -------------------------------------------------------------------------
284287
- name: OpenSSL 3.1 no-engine build
285288
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
286289
env: |
@@ -289,6 +292,7 @@ jobs:
289292
APR_VERSION=1.7.4
290293
APU_VERSION=1.6.3
291294
APU_CONFIG="--without-crypto"
295+
# -------------------------------------------------------------------------
292296
runs-on: ubuntu-latest
293297
timeout-minutes: 30
294298
env:

test/README.ci

+29-18
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Variables
32
---------
43

@@ -25,8 +24,9 @@ The CI scripts use the following environment variables:
2524

2625
* MFLAGS - arguments to pass when running "make" for httpd.
2726

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
3030

3131
* TEST_UBSAN - set for job using UBSan ("Undefined Behaviour Sanitizer")
3232

@@ -46,17 +46,34 @@ The CI scripts use the following environment variables:
4646

4747
* CLEAR_CACHE - if set, the cached $HOME/root is removed before each build
4848

49-
Caching -- NOTE, BROKEN IN GITHUB ACTIONS --
49+
Caching
5050
-------
5151

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.
5369

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.)
5773

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
6077

6178
If APR_VERSION and APU_VERSION are both set to 1.x versions, then
6279
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)
6784
Travis to Github Actions Migration TODO
6885
---------------------------------------
6986

70-
* better path filtering so e.g. CHANGES changes don't trigger CI
87+
* enable ACME/mod_md testing
7188
* 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?
7889
* test across different Ubuntu versions again
7990
- 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
8192
* introduce some job ordering rather than having a flat/concurrent
8293
set, if the default "./configure && make && test" works *then* start
8394
jobs doing 200 different variations on ./configure --enable-XXX

0 commit comments

Comments
 (0)