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.
This commit is contained in:
Vadim Zeitlin 2021-09-30 20:20:46 +02:00
commit 51cb07711f

View file

@ -20,7 +20,7 @@ jobs:
# By default, the name of the build is just the language used, but matrix
# entries can define the additional "desc" field with any additional
# information to include in the name.
name: ${{ matrix.SWIGLANG || 'none' }}${{ matrix.PY3 }} ${{ matrix.desc }}
name: ${{ matrix.SWIGLANG || 'none' }}${{ matrix.PY3 }} ${{ matrix.ENGINE}} ${{ matrix.VER }} ${{ matrix.desc }}
strategy:
matrix:
@ -42,9 +42,128 @@ jobs:
- SWIGLANG: ""
compiler: clang
desc: clang
- SWIGLANG: csharp
# D support can't be enabled because dmd 2.066 fails to build anything
# under Ubuntu 18.04 due to its standard library (libphobos2.a) not
# being compiled with -FPIC, but system gcc using -fpie by default,
# resulting in linking errors for any output. And later versions, such
# as 2.086.1, are not supported and result in errors in SWIG test suite.
#
# - SWIGLANG: d
# VER: '2.066.0'
# os: ubuntu-18.04 # This dlang version doesn't work under 20.04.
- SWIGLANG: go
VER: '1.3'
- SWIGLANG: go
VER: '1.6'
- SWIGLANG: go
VER: '1.8'
- SWIGLANG: go
VER: '1.12'
CSTD: gnu99
- SWIGLANG: go
VER: '1.16'
CSTD: gnu99
- SWIGLANG: guile
- SWIGLANG: java
- SWIGLANG: javascript
ENGINE: node
VER: '12'
CPP11: 1
- SWIGLANG: javascript
ENGINE: node
VER: '14'
CPP11: 1
- SWIGLANG: javascript
ENGINE: node
VER: '16'
CPP14: 1
- SWIGLANG: javascript
ENGINE: jsc
os: ubuntu-18.04 # libwebkitgtk-dev dependency not available in 20.04.
- SWIGLANG: javascript
ENGINE: v8
os: ubuntu-18.04 # libv8-dev only actually provides v8 in 18.04.
- SWIGLANG: lua
- SWIGLANG: lua
VER: '5.3'
- SWIGLANG: octave
CPP11: 1
- SWIGLANG: perl5
- SWIGLANG: php
VER: '7.4'
- SWIGLANG: php
VER: '8.0'
- SWIGLANG: python
- SWIGLANG: python
PY3: 3
VER: '3.2'
os: ubuntu-18.04 # Python < 3.5 not available for 20.04.
- SWIGLANG: python
PY3: 3
VER: '3.3'
os: ubuntu-18.04 # Python < 3.5 not available for 20.04.
- SWIGLANG: python
PY3: 3
VER: '3.4'
os: ubuntu-18.04 # Python < 3.5 not available for 20.04.
- SWIGLANG: python
PY3: 3
VER: '3.5'
- SWIGLANG: python
PY3: 3
VER: '3.6'
- SWIGLANG: python
PY3: 3
VER: '3.7'
- SWIGLANG: python
PY3: 3
VER: '3.8'
- SWIGLANG: python
PY3: 3
VER: '3.9'
- SWIGLANG: python
SWIG_FEATURES: -builtin
desc: builtin
- SWIGLANG: python
SWIG_FEATURES: -builtin -O
desc: builtin optimized
- SWIGLANG: python
PY3: 3
SWIG_FEATURES: -builtin
desc: builtin
- SWIGLANG: python
PY3: 3
SWIG_FEATURES: -builtin -O
desc: builtin optimized
- SWIGLANG: r
- SWIGLANG: ruby
VER: '1.9'
os: ubuntu-18.04
- SWIGLANG: ruby
VER: '2.0'
os: ubuntu-18.04
- SWIGLANG: ruby
VER: '2.1'
os: ubuntu-18.04
- SWIGLANG: ruby
VER: '2.2'
os: ubuntu-18.04
- SWIGLANG: ruby
VER: '2.3'
os: ubuntu-18.04
- SWIGLANG: ruby
VER: '2.4'
- SWIGLANG: ruby
VER: '2.5'
- SWIGLANG: ruby
VER: '2.6'
- SWIGLANG: ruby
VER: '2.7'
- SWIGLANG: ruby
VER: '3.0'
CSTD: c99
CPP11: 1
- SWIGLANG: tcl
# let's run all of them, as opposed to aborting when one fails
fail-fast: false
@ -52,6 +171,8 @@ jobs:
env:
SWIGLANG: ${{ matrix.SWIGLANG }}
PY3: ${{ matrix.PY3 }}
VER: ${{ matrix.VER }}
ENGINE: ${{ matrix.ENGINE }}
SWIG_FEATURES: ${{ matrix.SWIG_FEATURES }}
CSTD: ${{ matrix.CSTD }}
CPP11: ${{ matrix.CPP11 }}
@ -141,6 +262,22 @@ jobs:
- name: Test
working-directory: build/build
run: |
case "$SWIGLANG" in
javascript)
case "$ENGINE" in
node)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use ${VER}
;;
esac
;;
ruby)
source $HOME/.rvm/scripts/rvm
;;
esac
set -x
if test -n "$CPP11"; then export CPPSTD=c++11; fi
if test -n "$CPP14"; then export CPPSTD=c++14; fi