Merge branch 'ci-improvements'
Re-add most of the Linux CI builds previously run by Travis CI to GitHub Actions CI workflow. See #2084.
This commit is contained in:
commit
892db20d12
6 changed files with 270 additions and 63 deletions
309
.github/workflows/ci.yml
vendored
309
.github/workflows/ci.yml
vendored
|
|
@ -3,58 +3,228 @@ name: CI
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: master
|
branches: master
|
||||||
|
paths-ignore:
|
||||||
|
- 'CHANGES*'
|
||||||
|
- 'Doc/**'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: master
|
branches: master
|
||||||
|
paths-ignore:
|
||||||
|
- 'CHANGES*'
|
||||||
|
- 'Doc/**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os || 'ubuntu-20.04' }}
|
||||||
|
|
||||||
|
# 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.ENGINE}} ${{ matrix.VER }} ${{ matrix.desc }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
#SWIGJOBS: ["-j2"]
|
|
||||||
# other variables to optionally set
|
|
||||||
# CC, GCC (used as suffix)
|
|
||||||
# CPP11, CPP14, CPP17
|
|
||||||
# CONFIGOPTS
|
|
||||||
# SWIGLANG
|
|
||||||
# PY3,VER
|
|
||||||
# SWIG_FEATURES
|
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- SWIGLANG: ""
|
||||||
|
desc: gcc
|
||||||
|
- SWIGLANG: ""
|
||||||
|
GCC: 7
|
||||||
|
desc: gcc7
|
||||||
|
- SWIGLANG: ""
|
||||||
|
GCC: 8
|
||||||
|
desc: gcc8
|
||||||
|
- SWIGLANG: ""
|
||||||
|
GCC: 9
|
||||||
|
desc: gcc9
|
||||||
|
- SWIGLANG: ""
|
||||||
|
GCC: 10
|
||||||
|
desc: gcc10
|
||||||
|
- 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
|
CPP11: 1
|
||||||
SWIGLANG: ""
|
- SWIGLANG: javascript
|
||||||
- os: ubuntu-latest
|
ENGINE: node
|
||||||
|
VER: '14'
|
||||||
CPP11: 1
|
CPP11: 1
|
||||||
SWIGLANG: python
|
- SWIGLANG: javascript
|
||||||
- os: ubuntu-latest
|
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
|
CPP11: 1
|
||||||
SWIGLANG: python
|
- SWIGLANG: perl5
|
||||||
|
- SWIGLANG: php
|
||||||
|
VER: '7.4'
|
||||||
|
- SWIGLANG: php
|
||||||
|
VER: '8.0'
|
||||||
|
- SWIGLANG: python
|
||||||
|
- SWIGLANG: python
|
||||||
PY3: 3
|
PY3: 3
|
||||||
- os: ubuntu-latest
|
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
|
CPP11: 1
|
||||||
SWIGLANG: tcl
|
- SWIGLANG: tcl
|
||||||
# let's run all of them, as opposed to aborting when one fails
|
# let's run all of them, as opposed to aborting when one fails
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
- name: ccache
|
|
||||||
uses: hendrikmuhs/ccache-action@v1
|
|
||||||
with:
|
|
||||||
key: ${{ matrix.os }}-${{ matrix.SWIGLANG }}
|
|
||||||
- name: configure
|
|
||||||
shell: bash
|
|
||||||
env:
|
env:
|
||||||
SWIGLANG: ${{ matrix.SWIGLANG }}
|
SWIGLANG: ${{ matrix.SWIGLANG }}
|
||||||
CONFIGOPTS: ${{ matrix.CONFIGOPTS }}
|
PY3: ${{ matrix.PY3 }}
|
||||||
CC: ${{ matrix.CC }}
|
VER: ${{ matrix.VER }}
|
||||||
|
ENGINE: ${{ matrix.ENGINE }}
|
||||||
|
SWIG_FEATURES: ${{ matrix.SWIG_FEATURES }}
|
||||||
|
CSTD: ${{ matrix.CSTD }}
|
||||||
|
CPP11: ${{ matrix.CPP11 }}
|
||||||
|
CPP14: ${{ matrix.CPP14 }}
|
||||||
|
CPP17: ${{ matrix.CPP17 }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install CCache
|
||||||
|
uses: hendrikmuhs/ccache-action@v1
|
||||||
|
with:
|
||||||
|
key: ${{ matrix.os || 'ubuntu-20.04' }}-${{ matrix.compiler || 'gcc' }}${{ matrix.GCC }}
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
run: |
|
run: |
|
||||||
set -ex
|
set -x
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
echo PATH="$PATH" >> $GITHUB_ENV
|
||||||
|
|
||||||
source Tools/GHA-linux-install.sh
|
source Tools/GHA-linux-install.sh
|
||||||
|
|
||||||
|
if test '${{ matrix.compiler }}' = 'clang'; then
|
||||||
|
CC="clang"
|
||||||
|
CXX="clang++"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -fPIE"
|
||||||
|
CXXFLAGS="$CXXFLAGS -fPIE"
|
||||||
|
elif test -n "$GCC"; then
|
||||||
|
CC="gcc-$GCC"
|
||||||
|
CXX="g++-$GCC"
|
||||||
|
else
|
||||||
|
CC="gcc"
|
||||||
|
CXX="g++"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CC CXX
|
||||||
|
|
||||||
|
echo CC="$CC" >> $GITHUB_ENV
|
||||||
|
echo CXX="$CXX" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
echo "Compiler used:"
|
||||||
|
ls -la $(which $CC) $(which $CXX)
|
||||||
|
$CC --version
|
||||||
|
$CXX --version
|
||||||
|
|
||||||
|
if test -n '${{ matrix.CONFIGOPTS }}'; then
|
||||||
|
CONFIGOPTS=${{ matrix.CONFIGOPTS }}
|
||||||
|
fi
|
||||||
if test -n "$CPP11"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++11 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++11; fi
|
if test -n "$CPP11"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++11 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++11; fi
|
||||||
if test -n "$CPP14"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++14 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++14; fi
|
if test -n "$CPP14"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++14 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++14; fi
|
||||||
if test -n "$CPP17"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++17 $CXXFLAGS" "CFLAGS=-std=c17 $CFLAGS") && export CSTD=c17 && export CPPSTD=c++17; fi
|
if test -n "$CPP17"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++17 $CXXFLAGS" "CFLAGS=-std=c17 $CFLAGS") && export CSTD=c17 && export CPPSTD=c++17; fi
|
||||||
|
|
@ -62,44 +232,67 @@ jobs:
|
||||||
echo "${CONFIGOPTS[@]}"
|
echo "${CONFIGOPTS[@]}"
|
||||||
./autogen.sh && mkdir -p build/build && cd build/build && ../../configure "${CONFIGOPTS[@]}"
|
./autogen.sh && mkdir -p build/build && cd build/build && ../../configure "${CONFIGOPTS[@]}"
|
||||||
|
|
||||||
- name: build
|
case $(uname) in
|
||||||
shell: bash
|
Linux)
|
||||||
env:
|
cpu_count=$(nproc)
|
||||||
SWIGLANG: ${{ matrix.SWIGLANG }}
|
;;
|
||||||
SWIGJOBS: ${{ matrix.SWIGJOBS }}
|
|
||||||
|
Darwin)
|
||||||
|
cpu_count=$(sysctl -n hw.ncpu)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
cpu_count=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [[ $cpu_count != 1 ]]; then
|
||||||
|
echo SWIGJOBS=-j$cpu_count >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
working-directory: build/build
|
||||||
run: |
|
run: |
|
||||||
set -ex
|
set -x
|
||||||
cd ${GITHUB_WORKSPACE}/build/build;
|
make $SWIGJOBS
|
||||||
make -s $SWIGJOBS
|
|
||||||
./swig -version && ./swig -pcreversion
|
./swig -version && ./swig -pcreversion
|
||||||
if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-ccache; fi
|
if test -z "$SWIGLANG"; then make $SWIGJOBS check-ccache; fi
|
||||||
if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-errors-test-suite; fi
|
if test -z "$SWIGLANG"; then make $SWIGJOBS check-errors-test-suite; fi
|
||||||
echo 'Installing...'
|
echo 'Installing...'
|
||||||
if test -z "$SWIGLANG"; then sudo make -s install && swig -version && ccache-swig -V; fi
|
if test -z "$SWIGLANG"; then sudo make install && swig -version && ccache-swig -V; fi
|
||||||
- name: tests
|
|
||||||
shell: bash
|
- name: Test
|
||||||
env:
|
working-directory: build/build
|
||||||
SWIGLANG: ${{ matrix.SWIGLANG }}
|
|
||||||
SWIGJOBS: ${{ matrix.SWIGJOBS }}
|
|
||||||
SWIG_FEATURES: ${{ matrix.SWIG_FEATURES }}
|
|
||||||
CC: ${{ matrix.CC }}
|
|
||||||
CSTD: ${{ matrix.CSTD }}
|
|
||||||
CPP11: ${{ matrix.CPP11 }}
|
|
||||||
CPP14: ${{ matrix.CPP14 }}
|
|
||||||
CPP17: ${{ matrix.CPP17 }}
|
|
||||||
run: |
|
run: |
|
||||||
set -ex
|
case "$SWIGLANG" in
|
||||||
cd ${GITHUB_WORKSPACE}/build/build;
|
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 "$CPP11"; then export CPPSTD=c++11; fi
|
||||||
if test -n "$CPP14"; then export CPPSTD=c++14; fi
|
if test -n "$CPP14"; then export CPPSTD=c++14; fi
|
||||||
if test -n "$CPP17"; then export CPPSTD=c++17; fi
|
if test -n "$CPP17"; then export CPPSTD=c++17; fi
|
||||||
# Stricter compile flags for examples. Various headers and SWIG generated code prevents full use of -pedantic.
|
# Stricter compile flags for examples. Various headers and SWIG generated code prevents full use of -pedantic.
|
||||||
if test -n "$SWIGLANG"; then cflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cflags --std=$CSTD --compiler=$CC) && echo $cflags; fi
|
if test -n "$SWIGLANG"; then cflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cflags --std=$CSTD --compiler=$CC) && echo $cflags; fi
|
||||||
if test -n "$SWIGLANG"; then cxxflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cxxflags --std=$CPPSTD --compiler=$CC) && echo $cxxflags; fi
|
if test -n "$SWIGLANG"; then cxxflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cxxflags --std=$CPPSTD --compiler=$CC) && echo $cxxflags; fi
|
||||||
if test -n "$SWIGLANG"; then make -s check-$SWIGLANG-version; fi
|
if test -n "$SWIGLANG"; then make check-$SWIGLANG-version; fi
|
||||||
if test -n "$SWIGLANG"; then make check-$SWIGLANG-enabled; fi
|
if test -n "$SWIGLANG"; then make check-$SWIGLANG-enabled; fi
|
||||||
if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-examples CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
|
if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-examples CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
|
||||||
if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
|
if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
|
||||||
#echo 'Cleaning...'
|
|
||||||
# Skip on osx as often fails with: rm: Resource temporarily unavailable
|
- name: Clean
|
||||||
#if test "$TRAVIS_OS_NAME" != "osx"; then make check-maintainer-clean && ../../configure $CONFIGOPTS; fi
|
working-directory: build/build
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
make check-maintainer-clean && ../../configure $CONFIGOPTS
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ namespace TopLevel
|
||||||
class FooBar {
|
class FooBar {
|
||||||
public:
|
public:
|
||||||
FooBar() {}
|
FooBar() {}
|
||||||
FooBar(const FooBar&) {}
|
|
||||||
virtual ~FooBar() {}
|
virtual ~FooBar() {}
|
||||||
|
|
||||||
std::string FooBarDo() { return "Bar::Foo2::Foo2Bar()"; }
|
std::string FooBarDo() { return "Bar::Foo2::Foo2Bar()"; }
|
||||||
|
|
@ -56,7 +55,6 @@ namespace TopLevel
|
||||||
class FooBar {
|
class FooBar {
|
||||||
public:
|
public:
|
||||||
FooBar();
|
FooBar();
|
||||||
FooBar(const FooBar&);
|
|
||||||
virtual ~FooBar();
|
virtual ~FooBar();
|
||||||
|
|
||||||
std::string FooBarDo();
|
std::string FooBarDo();
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,6 @@ srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
|
|
||||||
C_TEST_CASES += \
|
|
||||||
ccomplextest \
|
|
||||||
|
|
||||||
CPP_TEST_CASES += \
|
CPP_TEST_CASES += \
|
||||||
javascript_lib_arrays \
|
javascript_lib_arrays \
|
||||||
|
|
||||||
|
|
@ -57,8 +54,10 @@ ifeq (node,$(JSENGINE))
|
||||||
# dunno... ignoring generously
|
# dunno... ignoring generously
|
||||||
apply_signed_char.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
apply_signed_char.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
constant_pointers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
constant_pointers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
|
cpp11_ref_qualifiers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
director_basic.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
director_basic.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
enum_thorough.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
enum_thorough.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
|
member_funcptr_galore.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||||
|
|
||||||
setup_node = \
|
setup_node = \
|
||||||
test -d $* || mkdir $* && \
|
test -d $* || mkdir $* && \
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
|
Foo() { }
|
||||||
|
Foo(const Foo &f) { } // copy ctor can still be public, however.
|
||||||
void bar() { }
|
void bar() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,9 @@ def test
|
||||||
yield method(:_map), Li_std_functors::Map
|
yield method(:_map), Li_std_functors::Map
|
||||||
end
|
end
|
||||||
|
|
||||||
# these should fail and not segfault
|
# these should fail and not segfault but currently do segfault with Ruby 2.6
|
||||||
|
# in GitHub Actions environment
|
||||||
|
if RUBY_VERSION != '2.6.6'
|
||||||
begin
|
begin
|
||||||
Li_std_functors::Set.new('sd')
|
Li_std_functors::Set.new('sd')
|
||||||
rescue
|
rescue
|
||||||
|
|
@ -72,5 +74,4 @@ end
|
||||||
test do |proc, container|
|
test do |proc, container|
|
||||||
proc.call(container)
|
proc.call(container)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,20 @@ case "$SWIGLANG" in
|
||||||
$RETRY sudo apt-get -qq install r-base
|
$RETRY sudo apt-get -qq install r-base
|
||||||
;;
|
;;
|
||||||
"ruby")
|
"ruby")
|
||||||
|
if ! command -v rvm; then
|
||||||
|
case "$VER" in
|
||||||
|
1.9 | 2.0 | 2.1 | 2.2 | 2.3 )
|
||||||
|
$RETRY sudo apt-get -qq install libgdbm-dev libncurses5-dev libyaml-dev libssl1.0-dev
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# YOLO
|
||||||
|
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
|
||||||
|
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
|
||||||
|
curl -sSL https://get.rvm.io | bash -s stable
|
||||||
|
set +x
|
||||||
|
source $HOME/.rvm/scripts/rvm
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
if [[ "$VER" == "2.7" || "$VER" == "3.0" ]]; then
|
if [[ "$VER" == "2.7" || "$VER" == "3.0" ]]; then
|
||||||
# Ruby 2.7+ support is currently only rvm master (30 Dec 2019)
|
# Ruby 2.7+ support is currently only rvm master (30 Dec 2019)
|
||||||
$RETRY rvm get master
|
$RETRY rvm get master
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue