We only support v8 5.0 and later now.
libv8-dev is no longer packaged in newer Ubuntu releases, so it
seems there isn't an easy way to update this to test a supported
v8 version, but really v8 via node is the configuration people will
actually use anyway.
Test the documented minimum version 6 and some later versions
as was done on Travis.
Using ubuntu-18.04 as I couldn't get these versions to work on newer
ubuntu-20.04 (some horrid c++ compilation errors)
These are allowed to fail and they won't fail the
overall build (like they did on Travis).
Implemented via the continue-on-error flag that Github Actions provides.
Show compiler name (directly from inputs rather than from 'desc'.
Fix testing of C++11, C++14.
Allow for CSTD override to override with -std=gnu11 for languages
whose headers are not -std=c11 compatible.
Show c/c++ std being tested from github yaml file in the name.
The ubuntu-20.04 machine has php 7.4 and 8.0 installed.
configure.ac always looks for newer versions over older versions of php.
To prevent always testing 8.0, remove all versions and just install the
required version.
There is too much cruft to wade through to find compiler warnings.
I check these once in a while for all compilers.
We could alternatively use -Werr, but at the risk of more broken builds.
It's useful to see the configure step by itself, so split it out
from the installation of prerequisites.
The make install is verbose, put it in it's own step
Move checking of the errors test-suite and ccache checks from
the Build to Test step.
This seems to be broken and sporadically results in "Text file busy"
errors when the tests are run actually in parallel, as is the case in
GitHub CI environment.
Don't add the builds known/allowed to fail and don't add all the
variations of Python builds, there are just too many of those, but do
add mostly all the rest, with the exceptions below:
Builds using JavaScript backend with node <= 10 had to be disabled as
well, as they just seem to be broken and there is no real motivation in
supporting these ancient versions.
Builds using D can't be run currently due to incompatibility between the
ancient dmd version being used and the earliest support Ubuntu version
(18.04) on GitHub Actions and not supporting newer versions in SWIG.
Builds using Scilab had to be disabled as running the test suite
reliably hangs. This would need to be debugged by somebody motivated in
doing it.
Note that some builds need to be run under Ubuntu 18.04 (Bionic) and not
the default 20.04 (Focal) as they use old dependencies that don't exist
in Focal any longer. In the future we ought to switch to using newer
versions of these dependencies.
This results in passing empty argument to configure which, in turn,
triggers "WARNING: you should use --build, --host, --target" from it as
this argument is apparently misinterpreted as the host name.
Executables can't be produced without this option using clang available
under Ubuntu 20.04, as linking fails with a lot of errors of the form
/usr/bin/ld: Swig/wrapfunc.o: relocation R_X86_64_32S against `.rodata'
can not be used when making a PIE object; recompile with -fPIE
They are supposed to be set to gcc-$GCC and g++-$GCC respectively, if
the suffix is defined, so do it.
Also use "compiler", rather than "CC", in the matrix for consistency
with .travis.yml and to avoid confusion between this property, which may
be empty, and CC environment variable, which is supposed to be always
defined.
Finally, show the path and the version of the compiler being used: this
was also done under Travis CI and there doesn't seem to be any reason
not to do it here.
There doesn't seem to be any good reason to use per-language caches, as
there are files that are common to all languages.
But we do want to use different keys for the different compilers and
even different compiler versions, as they yield different results when
compiling the same code.
Set the PATH to include the ccache directory for the subsequent steps,
including the "build" one, rather than only setting it locally for
configure, as this didn't have much effect at all.