Commit graph

48 commits

Author SHA1 Message Date
William S Fulton
e74b9830bb GHA: C++11 testing and compiler name
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.
2021-11-11 20:33:26 +00:00
William S Fulton
b69b5888a8 GHA: Fix testing of php versions
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.
2021-11-11 20:17:54 +00:00
William S Fulton
95c76a6fa6 Simpler Test code for handling SWIGLANG 2021-11-11 20:17:50 +00:00
William S Fulton
8b5cd5f906 GHA: cleaner output 2021-10-22 15:44:36 +01:00
William S Fulton
cbbeb4298a GHA: Fix CSTD and CPPSTD usage 2021-10-22 15:44:27 +01:00
William S Fulton
cf8268d19e GHA: Remove go-1.3 testing
Results in error message:
/usr/bin/ld: -r and -pie may not be used together
Same problem on Ubuntu 18.04. Same with versions go-1.2 to go-1.5.
2021-10-22 15:03:49 +01:00
William S Fulton
04a6ad3bb5 Add SWIG_FEATURES into GHA name 2021-10-22 14:49:01 +01:00
William S Fulton
c280d63a4d GHA: Add python 3.10 testing 2021-10-20 21:05:20 +01:00
William S Fulton
fc31b9ab04 Add gcc11 testing 2021-10-15 08:15:14 +01:00
William S Fulton
206105bc3f GHA: Correctly unset SWIGJOBS for broken parallel language checks 2021-10-15 08:14:28 +01:00
William S Fulton
4df45013d5 Fix to find scripts in Tools 2021-10-15 08:14:28 +01:00
William S Fulton
d0b6cfeca4 Factor out common environment setup GHA steps 2021-10-15 08:14:28 +01:00
William S Fulton
aaf19fbf93 GHA: Fix regressions
The environment variables are not kept between runs, arg.
Temp hack to try and get export env working for Configure and Test steps.
2021-10-15 08:14:28 +01:00
William S Fulton
61983e04b0 Try save WITHLANG 2021-10-15 08:14:28 +01:00
William S Fulton
d7c2cbec38 GHA: clean up Configure step
Setup Javascript before running configure - may fix broken Javascript testing.
Configure step just configures now.
2021-10-15 08:14:28 +01:00
William S Fulton
7e97269452 Fix Install step 2021-10-15 08:14:28 +01:00
William S Fulton
b17416c187 GHA: remove useless diagnostics
This echo is out of sync with the script for some reason and
is rather pointless subsequent to the breaking up of the steps
2021-10-15 08:14:28 +01:00
William S Fulton
af68e7f618 GHA: Restore silent flag to building SWIG
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.
2021-10-15 08:14:28 +01:00
William S Fulton
b1fe12182b GHA workflow break up
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.
2021-10-15 08:14:28 +01:00
Vadim Zeitlin
2b540ae2f5 Merge branch 'appveyor-ci-improvements'
Cancel builds of non-latest PR version on AppVeyor and other minor
improvements.

See #2085.
2021-10-14 00:26:54 +02:00
Vadim Zeitlin
8a0ec051db Don't run non-node JS tests in parallel in the CI builds
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.
2021-10-03 17:19:29 +02:00
Vadim Zeitlin
2c86dd193b Ignore changes to appveyor.yml in GitHub Actions CI workflow
Don't bother rerunning GitHub CI builds when only AppVeyor configuration
changes.
2021-10-03 16:13:12 +02:00
Vadim Zeitlin
3b7e46dd19 Try using one less make job to see its effect on total time
Check if using -j2, rather than -j3, may help with speeding up Octave
unit tests run which takes ~25 minutes currently.
2021-10-01 04:28:11 +02:00
Vadim Zeitlin
51cb07711f Add most of Linux builds from Travis CI
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.
2021-10-01 03:20:13 +02:00
Vadim Zeitlin
576e8317ff Don't set CONFIGOPTS to empty string initially
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.
2021-09-30 20:35:00 +02:00
Vadim Zeitlin
b77b90da88 Define PY3 environment variable if necessary
This fixes handling Python 2 and 3 builds in the same way.
2021-09-30 20:04:49 +02:00
Vadim Zeitlin
07d1ababcc Remove explicit CPP11 from matrix entries not needing it
This actually decreases the C++ version used by the default Ubuntu 20.04
compilers, so it's not clear why should we be using it.
2021-09-30 20:01:15 +02:00
Vadim Zeitlin
6c2a4607f0 Use -fPIE for clang builds
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
2021-09-30 18:18:21 +02:00
Vadim Zeitlin
55dfa99e49 Define CC and CXX environment variables correctly
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.
2021-09-30 18:17:24 +02:00
Vadim Zeitlin
a6300299bf Add builds with other gcc versions and clang
Also remove a not really useful comment mentioning the variables already
used in the matrix mixed up with those not used yet.
2021-09-30 18:02:50 +02:00
Vadim Zeitlin
dbb85de9cd Use the same ccache cache key for all languages but not compilers
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.
2021-09-30 17:39:23 +02:00
Vadim Zeitlin
6088323e14 Use ccache for building, not just configuring
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.
2021-09-30 17:38:24 +02:00
Vadim Zeitlin
84b1b3f8b5 Do not use "make -s" in the CI builds
We want to have as much information as possible in case of the build
failure, so don't use the "--silent" make option.
2021-09-30 17:29:38 +02:00
Vadim Zeitlin
0c46a30249 Use consistent names for the build steps
Follow the convention of the GitHub built-in steps, such as the first
"Set up job" one and use capitalized verbs in imperative mood rather
than a mix of non-capitalized verbs and nouns.

This is a purely cosmetic change.
2021-09-30 17:27:40 +02:00
Vadim Zeitlin
1395b902be Re-add "clean" step of the build
This was used with Travis CI, so there doesn't seem to be any reason not
to use it with GitHub Actions too.
2021-09-30 17:25:25 +02:00
Vadim Zeitlin
542bc18b0f Use working directory step option instead of explicit "cd"
This seems simpler and more explicit ("cd" is easy to miss or forget).
2021-09-30 17:24:54 +02:00
Vadim Zeitlin
9156f390ae Don't set shell explicitly for the build steps
Bash is used by default under all platforms we're going to support here,
so there is no need to specify it explicitly. Moreover, by default the
appropriate shell options (such as "pipefail", as well as "e") are used,
and there is no need to override them.
2021-09-30 17:23:24 +02:00
Vadim Zeitlin
7692d5f9ec Set SWIGJOBS environment variable automatically
Use the number of available CPUs + 1 which seems to work best with the
number of actually available CPUs in the GitHub Actions environment.
2021-09-30 17:17:10 +02:00
Vadim Zeitlin
bbfdedc18b Define all environment variables at job level
There doesn't seem to be any reason to make them step-specific, so
simplify the workflow by doing it once and only once at the job level.

No real changes.
2021-09-30 17:13:33 +02:00
Vadim Zeitlin
a2ff01a910 Use better names for the CI builds
Don't rely on the auto-generated names which are not very useful: e.g.
currently something like "build (1, python, 3)" is shown, while this
commit changes it to just "python3" which is both shorter and more
readable.
2021-09-30 17:08:23 +02:00
Vadim Zeitlin
5d9bbea510 Default to Ubuntu 20.04 if OS is not specified
This makes the matrix more compact, as we don't need to specify the OS
for the majority of the field (all of them now, but we'll add builds
using "macos-N" later, so it will still be necessary for some of them),
and the builds more stable than using which the current latest Ubuntu
version is.
2021-09-30 17:00:24 +02:00
Vadim Zeitlin
067d927cb1 Skip running CI for the changes to the files not affecting it
Note that if we decide to do something for the docs later (e.g. run a
spell checker on them), it should be done in a separate workflow and not
in this one.
2021-09-30 16:53:40 +02:00
Vadim Zeitlin
d022a1507a Rename workflow file to just ci.yml
It doesn't seem appropriate to use test.yml for it.
2021-08-09 13:20:40 +02:00
Vadim Zeitlin
4e599ddbdb Remove "GHA" branch from the workflow file
Follow an existing comment saying that it should be removed before
merging.
2021-08-09 13:17:57 +02:00
Kris Thielemans
9d50ec97d0 [GHA] enable GHA branch for the moment
[appveyor skip]
[travis skip]
2021-08-02 12:12:57 +01:00
Kris Thielemans
0e45679aa7 [GHA] only run on master and PRs 2021-08-02 12:02:53 +01:00
Kris Thielemans
fb09a5578a [GHA] convert matrix to use include 2021-08-02 10:57:20 +01:00
Kris Thielemans
b734d67dd3 [GHA] first GitHub actions workflow 2021-08-02 09:51:46 +01:00