]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
CI: move Windows MinGW and MSVC builds to GitHub Actions
authorMartin Matuska <martin@matuska.org>
Mon, 18 Nov 2019 01:11:03 +0000 (02:11 +0100)
committerMartin Matuska <martin@matuska.org>
Mon, 18 Nov 2019 01:11:03 +0000 (02:11 +0100)
.cirrus.yml
.github/workflows/ci.yml
build/ci/github_actions/ci.cmd [new file with mode: 0755]

index d87e48983e8e6093caad6a9e9ea9b2fa18eed99f..ab03f78b8e6ddd2a0c96ae01268548986e197d10 100644 (file)
@@ -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
index fc709d0b14a097459ad2682723d4d70467307706..1b0debcb3c1a6b61c1a4c5742a44515fdc684ae3 100644 (file)
@@ -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 (executable)
index 0000000..30626d5
--- /dev/null
@@ -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