diff options
author | Olly Betts <olly@survex.com> | 2023-04-20 10:49:03 +1200 |
---|---|---|
committer | Olly Betts <olly@survex.com> | 2023-05-02 12:33:38 +1200 |
commit | 102353c80cf2333017d732e788c54ff2dda6b55c (patch) | |
tree | 31aa496e13074e6e5e0b02c5aabb4f7d3577a9f2 | |
parent | e55a5f2da30cb2ce8bb55af05e92b6da2c52e38a (diff) | |
download | swig-102353c80cf2333017d732e788c54ff2dda6b55c.tar.gz |
[ci] Quick try to get D job working
-rw-r--r-- | .github/workflows/ci.yml | 298 | ||||
-rw-r--r-- | .github/workflows/nuget.yml | 62 | ||||
-rw-r--r-- | appveyor.yml | 195 |
3 files changed, 19 insertions, 536 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b8d16faf..a676e4e10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,291 +32,31 @@ jobs: strategy: matrix: include: - - SWIGLANG: "" - CPPFLAGS: "-DDOH_POISON" - - SWIGLANG: "" - GCC: 7 - - SWIGLANG: "" - GCC: 8 - - SWIGLANG: "" - GCC: 9 - - SWIGLANG: "" - GCC: 10 - - SWIGLANG: "" - GCC: 11 - - SWIGLANG: "" - GCC: 12 - os: ubuntu-22.04 - - SWIGLANG: "" - compiler: 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.6' - CSTD: gnu11 - - SWIGLANG: go - VER: '1.8' - - SWIGLANG: go - VER: '1.12' - CSTD: gnu11 - - SWIGLANG: go - VER: '1.17' - - SWIGLANG: guile - - SWIGLANG: guile - VER: '2.2' - - SWIGLANG: guile - VER: '3.0' - - SWIGLANG: java - #- SWIGLANG: javascript - # ENGINE: node - # VER: '6' - # CPPSTD: c++11 - # os: ubuntu-18.04 - #- SWIGLANG: javascript - # ENGINE: node - # VER: '8' - # CPPSTD: c++11 - # os: ubuntu-18.04 - #- SWIGLANG: javascript - # ENGINE: node - # VER: '10' - # CPPSTD: c++11 - # os: ubuntu-18.04 - - SWIGLANG: javascript - ENGINE: node - VER: '12' - CPPSTD: c++11 - - SWIGLANG: javascript - ENGINE: node - VER: '18' - CPPSTD: c++14 - - SWIGLANG: javascript - ENGINE: jsc - VER: '4.0' - - SWIGLANG: lua - - SWIGLANG: lua - VER: '5.3' - - SWIGLANG: octave - CPPSTD: c++11 - - SWIGLANG: perl5 - - SWIGLANG: php - VER: '8.0' - - SWIGLANG: php - VER: '8.1' - - SWIGLANG: php - VER: '8.2' - - SWIGLANG: python - PY2: 2 - #- SWIGLANG: python - # VER: '3.3' - # os: ubuntu-18.04 # Python < 3.5 not available for 20.04. - #- SWIGLANG: python - # VER: '3.4' - # os: ubuntu-18.04 # Python < 3.5 not available for 20.04. - - SWIGLANG: python - VER: '3.5' - - SWIGLANG: python - VER: '3.6' - - SWIGLANG: python - VER: '3.7' - - SWIGLANG: python - VER: '3.8' - - SWIGLANG: python - VER: '3.9' - - SWIGLANG: python - VER: '3.10' - - SWIGLANG: python - VER: '3.11' - - SWIGLANG: python - PY2: 2 - SWIG_FEATURES: -builtin - - SWIGLANG: python - PY2: 2 - SWIG_FEATURES: -builtin -O - - SWIGLANG: python - SWIG_FEATURES: -builtin - - SWIGLANG: python - SWIG_FEATURES: -builtin -O - - SWIGLANG: r - # rvm fails to install Ruby 1.9 on ubuntu-20.04 - #- SWIGLANG: ruby - # VER: '1.9' - # os: ubuntu-18.04 - - SWIGLANG: ruby - VER: '2.0' - - SWIGLANG: ruby - VER: '2.1' - - SWIGLANG: ruby - VER: '2.2' - - SWIGLANG: ruby - VER: '2.3' - - 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' - CPPSTD: c++11 - - SWIGLANG: ruby - VER: '3.1' - CPPSTD: c++11 - - SWIGLANG: ruby - CPPSTD: c++11 - VER: '3.2' - - SWIGLANG: scilab - VER: '5.5.2' - - SWIGLANG: scilab - VER: '6.0.2' - - SWIGLANG: scilab - os: ubuntu-22.04 # scilab 6.1.1 - - SWIGLANG: scilab - VER: '2023.0.0' - - SWIGLANG: tcl - # c++11 testing - - SWIGLANG: csharp - CPPSTD: c++11 - - SWIGLANG: go - VER: '1.17' - CPPSTD: c++11 - CSTD: gnu11 - - SWIGLANG: guile - CPPSTD: c++11 - - SWIGLANG: java - CPPSTD: c++11 - - SWIGLANG: javascript - ENGINE: jsc - VER: '4.1' - os: ubuntu-22.04 - CPPSTD: c++11 - - SWIGLANG: javascript - ENGINE: node - VER: '14' - CPPSTD: c++11 - - SWIGLANG: lua - CPPSTD: c++11 - - SWIGLANG: perl5 - CPPSTD: c++11 - - SWIGLANG: php - CPPSTD: c++11 - CSTD: gnu11 - - SWIGLANG: python - CPPSTD: c++11 - - SWIGLANG: r - CPPSTD: c++11 - - SWIGLANG: ruby - CPPSTD: c++11 - - SWIGLANG: scilab - CPPSTD: c++11 - - SWIGLANG: tcl - CPPSTD: c++11 - # c++14 testing - - SWIGLANG: csharp - CPPSTD: c++14 - - SWIGLANG: go - VER: '1.17' - CPPSTD: c++14 - CSTD: gnu11 - - SWIGLANG: guile - CPPSTD: c++14 - - SWIGLANG: java - CPPSTD: c++14 - - SWIGLANG: javascript - ENGINE: node - VER: '16' - CPPSTD: c++14 - - SWIGLANG: lua - CPPSTD: c++14 - - SWIGLANG: octave - CPPSTD: c++14 - - SWIGLANG: perl5 - CPPSTD: c++14 - - SWIGLANG: php - CPPSTD: c++14 - CSTD: gnu11 - - SWIGLANG: python - CPPSTD: c++14 - - SWIGLANG: r - CPPSTD: c++14 - - SWIGLANG: ruby - CPPSTD: c++14 - - SWIGLANG: scilab - CPPSTD: c++14 - - SWIGLANG: tcl - CPPSTD: c++14 - # c++17 testing (using gcc11) - - SWIGLANG: csharp - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: go - VER: '1.17' - CPPSTD: c++17 - GCC: 11 - CSTD: gnu17 - - SWIGLANG: guile - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: java - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: javascript - ENGINE: node - VER: '18' - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: lua - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: octave - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: perl5 - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: php - CPPSTD: c++17 - CSTD: gnu17 - GCC: 11 - - SWIGLANG: python - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: r - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: ruby - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: scilab - CPPSTD: c++17 - GCC: 11 - - SWIGLANG: tcl - CPPSTD: c++17 - GCC: 11 - # c++20 testing (using gcc12) - # ubuntu-22.04 is currently experimental on Github Actions, so limit to just one language for now - - SWIGLANG: python - CPPSTD: c++20 - GCC: 12 - os: ubuntu-22.04 - # Experimental languages (these are allowed to fail) - - SWIGLANG: mzscheme - continue-on-error: true - #- SWIGLANG: ocaml - # CPPSTD: c++17 - # GCC: 11 - # continue-on-error: true - # os: ubuntu-18.04 # ocaml-4.08 in ubuntu-20.04 not yet working + # 2.066.0: needs libcurl3 which isn't present in 20.04 and later. + # 2.067.1: ditto + # 2.070.1: ditto + # 2.073.0: ditto + # 2.079.0: ditto + # 2.079.1: ditto + # 2.080.0 on 20.04: installs but fails tests, sample errors: + # checking Examples/d/class + # example.d(81): Error: mutable method `example.Callback.run` is not callable using a `const` `this` + # example.d(63): Error: template instance `example.Callback.swigIsMethodOverridden!(void delegate(), void function(), run)` error instantiating + # 2.081.0 on 20.04: ditto + # 2.081.2 on 20.04: ditto + # 2.082.1 on 20.04: ditto + # 2.084.1 on 20.04: ditto + # 2.086.1 on 20.04: ditto + # 2.103.0 on 20.04: ditto + - SWIGLANG: d + VER: '2.079.1' + os: ubuntu-20.04 # Run all of them, as opposed to aborting when one fails fail-fast: false diff --git a/.github/workflows/nuget.yml b/.github/workflows/nuget.yml deleted file mode 100644 index 40ab4244c..000000000 --- a/.github/workflows/nuget.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Windows Nuget Build - -on: - push: - paths-ignore: - - 'CHANGES*' - - 'Doc/**' - - 'appveyor.yml' - pull_request: - branches: master - paths-ignore: - - 'CHANGES*' - - 'Doc/**' - - 'appveyor.yml' - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - build: - - runs-on: windows-2019 - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - submodules: recursive - - - name: Install Dependencies - shell: powershell - run: | - nuget install CMake-win64 -Version 3.15.5 -OutputDirectory C:\Tools\CMake - nuget install Bison -Version 3.7.4 -OutputDirectory C:\Tools\bison - nuget install PCRE2 -Version 10.39 -OutputDirectory C:\Tools\pcre2 - - - name: Build - shell: powershell - run: | - $env:PATH="C:\Tools\CMake\CMake-win64.3.15.5\bin;C:\Tools\bison\Bison.3.7.4\bin;" + $env:PATH - $PCRE_ROOT="C:\Tools\pcre2\PCRE2.10.39.0" - $PCRE_PLATFORM="x64" - $WORKING_DIR=(Get-Location).ToString() -replace "\\","/" - cmake -G "Visual Studio 16 2019" -A "x64" ` - -DCMAKE_INSTALL_PREFIX="$WORKING_DIR/install2" ` - -DCMAKE_C_FLAGS="/DPCRE2_STATIC" ` - -DCMAKE_CXX_FLAGS="/DPCRE2_STATIC" ` - -DPCRE2_INCLUDE_DIR="$PCRE_ROOT/include" ` - -DPCRE2_LIBRARY="$PCRE_ROOT/lib/pcre2-8-static.lib" ` - -S . -B build - cmake --build build --config Release - - - name: Install - shell: powershell - run: | - cmake --install build --config Release - - - name: Test - shell: powershell - working-directory: install2/bin - run: | - swig.exe -version diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 152336be4..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,195 +0,0 @@ -platform: -- x64 - -skip_commits: - files: - - '.github/**' - - 'CHANGES*' - - 'Doc/**' - - 'Tools/CI-*' - -environment: - global: - MAKEJOBS: 2 - - matrix: - - SWIGLANG: csharp - VSVER: 12 - - SWIGLANG: csharp - VSVER: 14 - - SWIGLANG: python - VSVER: 14 - VER: 27 - PY2: 2 - - BUILDSYSTEM: cmake - VSVER: 14 - - SWIGLANG: python - VSVER: 15 - VER: 38 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - - SWIGLANG: python - VSVER: 16 - VER: 39 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - - SWIGLANG: csharp - VSVER: 17 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: csharp - VSVER: 17 - Platform: x86 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: java - VSVER: 17 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: java - VSVER: 17 - Platform: x86 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: python - VSVER: 17 - VER: 310 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: python - VSVER: 17 - VER: 310 - Platform: x86 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: python - OSVARIANT: cygwin - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: java - OSVARIANT: mingw - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - - SWIGLANG: python - OSVARIANT: mingw - WITHLANG: python - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - -#matrix: -# allow_failures: -# - SWIGLANG: python -# OSVARIANT: cygwin - -# Skip stale commits (pull requests only), see https://github.com/appveyor/ci/issues/38#issuecomment-70628826 -init: -- ps: | - if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` - https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` - Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` - throw "There are newer queued builds for this pull request, failing early." } - -install: -- date /T & time /T -- ps: >- - if ($env:Platform -eq "x86") { - $env:PCRE_PLATFORM="Win32" - $env:JAVA_HOME="C:/Program Files (x86)/Java/jdk1.8.0" - $env:VCVARS_PLATFORM="x86" - $env:LANG_PLATFORM="" - $env:CYGWINBIN="C:\cygwin\bin" - $env:CYGWINSETUP="C:/cygwin/setup-x86.exe" - $env:MSYSBIN="C:\msys64\usr\bin" - $env:MINGWBIN="C:\msys64\mingw32\bin" - $env:MBITS="32" - $env:MARCH="i686" - $env:VSARCH="" - } else { - $env:PCRE_PLATFORM="x64" - $env:JAVA_HOME="C:/Program Files/Java/jdk17" - $env:VCVARS_PLATFORM="amd64" - $env:LANG_PLATFORM="-x64" - $env:CYGWINBIN="C:\cygwin64\bin" - $env:CYGWINSETUP="C:/cygwin64/setup-x86_64.exe" - $env:MSYSBIN="C:\msys64\usr\bin" - $env:MINGWBIN="C:\msys64\mingw64\bin" - $env:MBITS="64" - $env:MARCH="x86_64" - $env:VSARCH=" Win64" - } -- ps: >- - if (!$env:OSVARIANT) { - $env:PATH="$env:CYGWINBIN;$env:PATH" - $env:CYGWIN="nodosfilewarning" - $env:CC="cccl" - $env:CXX="cccl" - if ($env:VSVER -ge 17) { - $env:VCVARSBAT="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" - $env:BOOSTROOT="C:/Libraries/boost_1_77_0" - } elseif ($env:VSVER -eq 16) { - $env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" - $env:BOOSTROOT="C:/Libraries/boost_1_73_0" - } elseif ($env:VSVER -eq 15) { - $env:VCVARSBAT="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars$env:MBITS.bat" - $env:BOOSTROOT="C:/Libraries/boost_1_69_0" - } else { - $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS")) - $env:VCVARSBAT="$env:VSCOMNTOOLS..\..\VC\vcvarsall.bat" - $env:VCVARSARG="$env:VCVARS_PLATFORM" - $env:BOOSTROOT="C:/Libraries/boost_1_69_0" - } - } elseif ($env:OSVARIANT -eq "cygwin") { - $env:PATH="$env:CYGWINBIN;$env:PATH" - $env:CYGWIN="nodosfilewarning" - $env:CC="gcc" - $env:CXX="g++" - } elseif ($env:OSVARIANT -eq "mingw") { - # Note mingw setup tests the native Windows Python distribution (not MinGW Python) with gcc - $env:PATH="$env:MINGWBIN;$env:MSYSBIN;$env:PATH" - $env:MSYSTEM="MINGW$env:MBITS" # This is important for msys2 - $env:CC="gcc" - $env:CXX="g++" - } -- if "%OSVARIANT%"=="" bash -c "cd /usr/bin && curl --retry 15 -s -L https://github.com/swig/cccl/archive/cccl-1.2.tar.gz | tar -xz --strip 1 cccl-cccl-1.2/cccl" -- if "%OSVARIANT%"=="" call "%VCVARSBAT%" %VCVARSARG% -- if "%OSVARIANT%"=="" appveyor-retry appveyor DownloadFile https://github.com/PhilipHazel/pcre2/archive/refs/tags/pcre2-10.39.zip -- if "%OSVARIANT%"=="" 7z x pcre2-10.39.zip -- if "%OSVARIANT%"=="" set PCRE_ROOT=C:/pcre -- if "%OSVARIANT%"=="" set PATH=C:\Python%VER%%LANG_PLATFORM%;%PATH% -- if "%OSVARIANT%"=="" bash -c "which cl.exe" -- if "%OSVARIANT%"=="" bash -c "cl.exe /? 2>&1 | head -n 1" -- if "%OSVARIANT%"=="" bash -c "which csc.exe" -- if "%OSVARIANT%"=="" bash -c "csc.exe /? | head -n 1" -- if "%OSVARIANT%"=="cygwin" %CYGWINSETUP% --quiet-mode --packages python3-devel,libpcre2-devel,libboost-devel > cygwin-install.txt || bash -c "cat cygwin-install.txt" -- if "%OSVARIANT%"=="mingw" bash -c "pacman --noconfirm --sync mingw%MBITS%/mingw-w64-%MARCH%-autotools mingw%MBITS%/mingw-w64-%MARCH%-pcre2 mingw%MBITS%/mingw-w64-%MARCH%-boost mingw%MBITS%/mingw-w64-%MARCH%-python" -- if not "%WITHLANG%"=="" set SWIGWITHLANG==%WITHLANG% -- if not "%WITHLANG%"=="" where %WITHLANG% -- if "%SWIGLANG%"=="python" set PY3=3 -- if "%PY2%"=="2" set PY3= -- bash -c "which $CC" -- bash -c "which $CXX" -- bash -c "$CC --version | head -n 1" -- bash -c "$CXX --version | head -n 1" -- bash -c "which python" -- bash -c "python -V" -- bash -c "make --version | head -n 2" -- pwd -- echo MAKEJOBS=%MAKEJOBS% -- uname -a - -build_script: -- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc -- set CHECK_OPTIONS=CSHARPOPTIONS=-platform:%Platform% -- if "%BUILDSYSTEM%"=="cmake" cd pcre2-pcre2-10.39 && cmake -G "Visual Studio 14 2015%VSARCH%" -DCMAKE_INSTALL_PREFIX="%PCRE_ROOT:\=/%" . && cmake --build . --config Release --target install && cd .. -- if "%BUILDSYSTEM%"=="cmake" cmake --version && cmake -G "Visual Studio 14 2015%VSARCH%" -DCMAKE_INSTALL_PREFIX="%CD:\=/%/install2" -DCMAKE_C_FLAGS="/WX /DPCRE2_STATIC" -DCMAKE_CXX_FLAGS="/WX /DPCRE2_STATIC" -DPCRE2_INCLUDE_DIR=%PCRE_ROOT%/include -DPCRE2_LIBRARY=%PCRE_ROOT%/lib/pcre2-8-static.lib -DBISON_EXECUTABLE=C:/cygwin/bin/bison.exe . && cmake --build . --config Release --target install && ctest --output-on-failure -V -C Release && appveyor exit -- if "%OSVARIANT%"=="" bash -c "exec 0</dev/null && cd pcre2-pcre2-10.39 && ./autogen.sh && ./configure CC=$CC CXX=$CXX CFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' --prefix=%PCRE_ROOT% --disable-shared && time make -s -j%MAKEJOBS% LN_S=cp && make install && cd .. && cp -v %PCRE_ROOT%/lib/libpcre2-8.lib %PCRE_ROOT%/lib/pcre2-8.lib" - # Open dummy file descriptor to fix error on cygwin: ./configure: line 560: 0: Bad file descriptor -- if "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure --disable-dependency-tracking --disable-ccache CC=$CC CXX=$CXX CFLAGS='-O2' CXXFLAGS='-O2' LDFLAGS='--cccl-link /LTCG' PCRE2_CFLAGS='-I%PCRE_ROOT%/include -DPCRE2_STATIC' PCRE2_LIBS='-L%PCRE_ROOT%/lib/ -lpcre2-8' --without-perl5 --without-go --with-boost=%BOOSTROOT% || cat config.log" -- if not "%OSVARIANT%"=="" bash -c "exec 0</dev/null && ./autogen.sh && time ./configure CC=%CC% CXX=%CXX% --without-alllang --with-$SWIGLANG$PY3$SWIGWITHLANG || cat config.log" -- bash -c "time make -s -j%MAKEJOBS%" - -test_script: -- set CCCL_OPTIONS=--cccl-muffle /W3 /EHsc -- .\swig.exe -version -- .\swig.exe -pcreversion -- if not "%OSVARIANT%"=="" CCache\ccache-swig -V -- bash -c "file ./swig.exe" -- bash -c "make check-%SWIGLANG%-version" -- bash -c "make check-%SWIGLANG%-enabled" -- bash -c "time make -k check-%SWIGLANG%-examples %CHECK_OPTIONS% %CHECK_OPTIONS2%" -- bash -c "time make -k check-%SWIGLANG%-test-suite -j%MAKEJOBS% %CHECK_OPTIONS% %CHECK_OPTIONS2%" - -# Do not build on tags (GitHub only) -skip_tags: true - -#on_finish: # Display RDP connection information -# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) |