CI: Second attempt to fix stale XS cache issue.

Cache the "perl -V" output and flush the cache if it changes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921308 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joe Orton
2024-10-14 14:08:21 +00:00
parent c34a276aea
commit e8518dc75d

View File

@ -67,10 +67,18 @@ if ! test -v SKIP_TESTING -o -v NO_TEST_FRAMEWORK; then
# Clear CPAN cache if necessary
if [ -v CLEAR_CACHE ]; then rm -rf ~/perl5; fi
# Also flush if the system Perl is newer than the cache, otherwise
# it may refuse to load the (older) XS modules.
if [ /usr/bin/perl -nt ~/perl5/.key ]; then
: Purging cache since /usr/bin/perl has been updated
if perl -V > perlver; then
: Perl binary broken
perl -V
exit 1
fi
# Compare the current "perl -V" output with the output at the time
# the cache was built; flush the cache if it's changed to avoid
# failure later when /usr/bin/perl refuses to load a mismatched XS
# module.
if ! cmp -s perlver ~/perl5/.perlver; then
: Purging cache since "perl -V" output has changed
rm -rf ~/perl5
fi
@ -85,11 +93,11 @@ if ! test -v SKIP_TESTING -o -v NO_TEST_FRAMEWORK; then
# CC=gcc, e.g. for the CC="gcc -m32" case the builds are not correct
# otherwise.
CC=gcc cpanm --notest $pkgs
# Set cache key.
echo $pkgs > ~/perl5/.key
unset pkgs
# Cache the perl -V output for future verification.
mv perlver ~/perl5/.perlver
# Make a shallow clone of httpd-tests git repo.
git clone -q --depth=1 https://github.com/apache/httpd-tests.git test/perl-framework