Skip to content

Commit

Permalink
CI: Second attempt to fix stale XS cache issue.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
notroj committed Oct 14, 2024
1 parent c34a276 commit e8518dc
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions test/travis_before_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down

0 comments on commit e8518dc

Please sign in to comment.