diff options
-rw-r--r-- | .cirrus.yml | 34 | ||||
-rw-r--r-- | .github/workflows/ci.yml | 40 | ||||
-rwxr-xr-x | build/ci/github_actions/ci.cmd | 79 |
3 files changed, 114 insertions, 39 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index d87e4898..ab03f78b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -77,40 +77,6 @@ Fedora_30_distcheck_task: distcheck_script: - ./build/ci/build.sh -a distcheck -Windows_MSVC_task: - windows_container: - dockerfile: build/ci/cirrus_ci/Dockerfile.msvc - os_version: 2019 - env: - BE: msvc - configure_script: - - build\ci\cirrus_ci\ci.cmd configure - build_script: - - build\ci\cirrus_ci\ci.cmd build - test_script: - - build\ci\cirrus_ci\ci.cmd test - instal_script: - - build\ci\cirrus_ci\ci.cmd install - -Windows_MinGW_task: - windows_container: - image: cirrusci/windowsservercore:2019 - os_version: 2019 - env: - BE: mingw-gcc - prepare_script: - - build\ci\cirrus_ci\ci.cmd prepare - deplibs_script: - - build\ci\cirrus_ci\ci.cmd deplibs - configure_script: - - build\ci\cirrus_ci\ci.cmd configure - build_script: - - build\ci\cirrus_ci\ci.cmd build - test_script: - - build\ci\cirrus_ci\ci.cmd test - install_script: - - build\ci\cirrus_ci\ci.cmd install - Windows_Cygwin_task: windows_container: image: cirrusci/windowsservercore:2019 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc709d0b..1b0debcb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,16 +1,13 @@ -name: Ubuntu +name: CI on: [push, pull_request] jobs: - Build-and-test: - + Ubuntu: runs-on: ubuntu-latest - strategy: matrix: bs: [autotools, cmake] - steps: - uses: actions/checkout@master - name: Install dependencies @@ -36,3 +33,36 @@ jobs: run: ./build/ci/build.sh -a install env: BS: ${{ matrix.bs }} + + Windows: + runs-on: windows-latest + strategy: + matrix: + be: [mingw-gcc, msvc] + steps: + - uses: actions/checkout@master + - name: Install dependencies + run: ./build/ci/github_actions/ci.cmd deplibs + shell: cmd + env: + BE: ${{ matrix.be }} + - name: Configure + run: ./build/ci/github_actions/ci.cmd configure + shell: cmd + env: + BE: ${{ matrix.be }} + - name: Build + run: ./build/ci/github_actions/ci.cmd build + shell: cmd + env: + BE: ${{ matrix.be }} + - name: Test + run: ./build/ci/github_actions/ci.cmd test + shell: cmd + env: + BE: ${{ matrix.be }} + - name: Install + run: ./build/ci/github_actions/ci.cmd install + shell: cmd + env: + BE: ${{ matrix.be }} diff --git a/build/ci/github_actions/ci.cmd b/build/ci/github_actions/ci.cmd new file mode 100755 index 00000000..30626d5c --- /dev/null +++ b/build/ci/github_actions/ci.cmd @@ -0,0 +1,79 @@ +@ECHO OFF +SET ZLIB_VERSION=1.2.11 +IF NOT "%BE%"=="mingw-gcc" ( + IF NOT "%BE%"=="msvc" ( + ECHO Environment variable BE must be mingw-gcc or msvc + EXIT /b 1 + ) +) + +IF "%1"=="deplibs" ( + IF NOT EXIST build_ci\libs ( + MKDIR build_ci\libs + ) + CD build_ci\libs + IF NOT EXIST zlib-%ZLIB_VERSION%.tar.gz ( + curl -o zlib-%ZLIB_VERSION%.tar.gz https://www.zlib.net/zlib-%ZLIB_VERSION%.tar.gz + ) + IF NOT EXIST zlib-%ZLIB_VERSION% ( + tar -x -z -f zlib-%ZLIB_VERSION%.tar.gz + ) + CD zlib-%ZLIB_VERSION% + IF "%BE%"=="mingw-gcc" ( + SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" . || EXIT /b 1 + mingw32-make || EXIT /b 1 + mingw32-make test || EXIT /b 1 + mingw32-make install || EXIT /b 1 + ) ELSE IF "%BE%"=="msvc" ( + cmake -G "Visual Studio 16 2019" . || EXIT /b 1 + cmake --build . --target ALL_BUILD --config Release || EXIT /b 1 + cmake --build . --target RUN_TESTS --config Release || EXIT /b 1 + cmake --build . --target INSTALL --config Release || EXIT /b 1 + ) +) ELSE IF "%1%"=="configure" ( + IF "%BE%"=="mingw-gcc" ( + SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + MKDIR build_ci\cmake + CD build_ci\cmake + cmake -G "MinGW Makefiles" ..\.. || EXIT /b 1 + ) ELSE IF "%BE%"=="msvc" ( + MKDIR build_ci\cmake + CD build_ci\cmake + cmake -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE="Release" ..\.. || EXIT /b 1 + ) +) ELSE IF "%1%"=="build" ( + IF "%BE%"=="mingw-gcc" ( + SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + CD build_ci\cmake + mingw32-make || EXIT /b 1 + ) ELSE IF "%BE%"=="msvc" ( + CD build_ci\cmake + cmake --build . --target ALL_BUILD --config Release + ) +) ELSE IF "%1%"=="test" ( + IF "%BE%"=="mingw-gcc" ( + SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + COPY "C:\Program Files (x86)\zlib\bin\libzlib.dll" build_ci\cmake\bin\ + CD build_ci\cmake + SET SKIP_TEST_SPARSE=1 + mingw32-make test + ) ELSE IF "%BE%"=="msvc" ( + ECHO "Skipping tests on this platform" + EXIT /b 0 + REM CD build_ci\cmake + REM cmake --build . --target RUN_TESTS --config Release + ) +) ELSE IF "%1%"=="install" ( + IF "%BE%"=="mingw-gcc" ( + SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + CD build_ci\cmake + mingw32-make install DESTDIR=%cd%\destdir + ) ELSE IF "%BE%"=="msvc" ( + cmake --build . --target INSTALL --config Release + ) +) ELSE ( + ECHO "Usage: %0% deplibs|configure|build|test|install" + @EXIT /b 0 +) +@EXIT /b 0 |