]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Use Dockerfiles for Windows and Linux test environments
authorMartin Matuska <martin@matuska.org>
Thu, 18 Apr 2019 19:54:51 +0000 (21:54 +0200)
committerMartin Matuska <martin@matuska.org>
Sat, 20 Apr 2019 08:55:27 +0000 (10:55 +0200)
.cirrus.yml
build/ci/cirrus_ci/Dockerfile.cygwin [new file with mode: 0644]
build/ci/cirrus_ci/Dockerfile.fedora29 [new file with mode: 0644]
build/ci/cirrus_ci/Dockerfile.mingw [new file with mode: 0644]
build/ci/cirrus_ci/Dockerfile.msvc [new file with mode: 0644]
build/ci/cirrus_ci/Dockerfile.windows [new file with mode: 0644]
build/ci/cirrus_ci/ci.cmd [moved from build/ci/cirrus_ci.cmd with 93% similarity]
build/ci/cirrus_ci/ci.sh [moved from build/ci/cirrus_ci.sh with 100% similarity]

index 0507bcf4edeaf9a0637859ecec70d9203e01091b..770d70a577d1a2d6b6d62a06293173b579fc0bd5 100644 (file)
@@ -2,25 +2,58 @@ env:
   CIRRUS_CLONE_DEPTH: 1
   ARCH: amd64
 
-main_task:
+FreeBSD_task:
+  matrix:
+    env:
+      BS: autotools
+    env:
+      BS: cmake
   matrix:
-    container:
-      image: fedora:29
     freebsd_instance:
       image: freebsd-12-0-release-amd64
     freebsd_instance:
       image: freebsd-11-2-release-amd64
+  prepare_script:
+  - ./build/ci/cirrus_ci/ci.sh prepare
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  build_script:
+  - ./build/ci/build.sh -a build
+  test_script:
+  - ./build/ci/build.sh -a test
+  - ./build/ci/cirrus_ci/ci.sh test
+
+MacOS_task:
+  matrix:
+    env:
+      BS: autotools
+    env:
+      BS: cmake
+  matrix:
     osx_instance:
       image: mojave-xcode-10.2
     osx_instance:
       image: high-sierra-xcode-10.0
+  prepare_script:
+  - ./build/ci/cirrus_ci/ci.sh prepare
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  build_script:
+  - ./build/ci/build.sh -a build
+  test_script:
+  - ./build/ci/build.sh -a test
+  - ./build/ci/cirrus_ci/ci.sh test
+
+Fedora_29_task:
+  container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.fedora29
   matrix:
     env:
       BS: autotools
     env:
       BS: cmake
-  prepare_script:
-  - ./build/ci/cirrus_ci.sh prepare
   configure_script:
   - ./build/ci/build.sh -a autogen
   - ./build/ci/build.sh -a configure
@@ -28,26 +61,42 @@ main_task:
   - ./build/ci/build.sh -a build
   test_script:
   - ./build/ci/build.sh -a test
-  - ./build/ci/cirrus_ci.sh test
 
-Windows_task:
+Windows_MSVC_task:
   windows_container:
-    image: cirrusci/windowsservercore:2019
+    dockerfile: build/ci/cirrus_ci/Dockerfile.msvc
     os_version: 2019
-  matrix:
-    env:
-      BE: mingw-gcc
-    env:
-      BE: cygwin-gcc
-    env:
-      BE: msvc
-  prepare_script:
-  - build\ci\cirrus_ci.cmd prepare
-  deplibs_script:
-  - build\ci\cirrus_ci.cmd deplibs
+  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
+
+Windows_MinGW_task:
+  windows_container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.mingw
+    os_version: 2019
+  env:
+    BE: mingw-gcc
+  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
+
+Windows_Cygwin_task:
+  windows_container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.cygwin
+    os_version: 2019
+  env:
+    BE: cygwin-gcc
   configure_script:
-  - build\ci\cirrus_ci.cmd configure
+  - build\ci\cirrus_ci\ci.cmd configure
   build_script:
-  - build\ci\cirrus_ci.cmd build
+  - build\ci\cirrus_ci\ci.cmd build
   test_script:
-  - build\ci\cirrus_ci.cmd test
+  - build\ci\cirrus_ci\ci.cmd test
diff --git a/build/ci/cirrus_ci/Dockerfile.cygwin b/build/ci/cirrus_ci/Dockerfile.cygwin
new file mode 100644 (file)
index 0000000..453503e
--- /dev/null
@@ -0,0 +1,4 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress cygwin
+RUN C:\tools\cygwin\cygwinsetup.exe -q -P make,autoconf,automake,cmake,gcc-core,binutils,libtool,pkg-config,bison,sharutils,zlib-devel,libbz2-devel,liblzma-devel,liblz4-devel,libiconv-devel,libxml2-devel,libzstd-devel,libssl-devel
diff --git a/build/ci/cirrus_ci/Dockerfile.fedora29 b/build/ci/cirrus_ci/Dockerfile.fedora29
new file mode 100644 (file)
index 0000000..d88176b
--- /dev/null
@@ -0,0 +1,3 @@
+FROM fedora:29
+
+RUN dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel libasan librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel
diff --git a/build/ci/cirrus_ci/Dockerfile.mingw b/build/ci/cirrus_ci/Dockerfile.mingw
new file mode 100644 (file)
index 0000000..f14bb0b
--- /dev/null
@@ -0,0 +1,8 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress mingw
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" . && mingw32-make && mingw32-make install
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz
diff --git a/build/ci/cirrus_ci/Dockerfile.msvc b/build/ci/cirrus_ci/Dockerfile.msvc
new file mode 100644 (file)
index 0000000..c983182
--- /dev/null
@@ -0,0 +1,9 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress visualstudio2017community
+RUN choco install -y --no-progress visualstudio2017-workload-vctools
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "Visual Studio 15 2017" . && cmake --build . --target ALL_BUILD --config Release && cmake --build . --target INSTALL --config Release
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz
diff --git a/build/ci/cirrus_ci/Dockerfile.windows b/build/ci/cirrus_ci/Dockerfile.windows
new file mode 100644 (file)
index 0000000..34d6d32
--- /dev/null
@@ -0,0 +1,12 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress mingw
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress visualstudio2017community
+RUN choco install -y --no-progress visualstudio2017-workload-vctools
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "Visual Studio 15 2017" . && cmake --build . --target ALL_BUILD --config Release && cmake --build . --target INSTALL --config Release
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz
+RUN choco install -y --no-progress cygwin
+RUN C:\tools\cygwin\cygwinsetup.exe -q -P make,autoconf,automake,cmake,gcc-core,binutils,libtool,pkg-config,bison,sharutils,zlib-devel,libbz2-devel,liblzma-devel,liblz4-devel,libiconv-devel,libxml2-devel,libzstd-devel,libssl-devel
similarity index 93%
rename from build/ci/cirrus_ci.cmd
rename to build/ci/cirrus_ci/ci.cmd
index 7f57c9c4dbdadbc121843e501c6d1757bbb61e53..14c0d9dd806c6383af7e108b79970524f1d3a7f9 100755 (executable)
@@ -19,21 +19,18 @@ IF "%1%"=="prepare" (
     @ECHO ON
     choco install -y --no-progress mingw || EXIT /b 1
     choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake || EXIT /b 1
-    MKDIR build_ci\cmake || EXIT /b 1
     @EXIT /b 0
   ) ELSE IF "%BE%"=="msvc" (
     @ECHO ON
     choco install -y --no-progress visualstudio2017community || EXIT /b 1
     choco install -y --no-progress visualstudio2017-workload-vctools || EXIT /b 1
     choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake || EXIT /b 1
-    MKDIR build_ci\cmake || EXIT /b 1
   )
 ) ELSE IF "%1"=="deplibs" (
   IF "%BE%"=="cygwin-gcc" (
     ECHO Skipping on this platform
     EXIT /b 0
   )
-  REFRESHENV
   IF NOT EXIST build_ci\libs (
     MKDIR build_ci\libs
   )
@@ -62,11 +59,11 @@ IF "%1%"=="prepare" (
     SET CONFIGURE_ARGS=-DENABLE_ACL=OFF
     C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a configure" || EXIT /b 1
   ) ELSE IF "%BE%"=="mingw-gcc" (
-    REFRESHENV
+    MKDIR build_ci\cmake
     CD build_ci\cmake
     cmake -G "MinGW Makefiles" ..\.. || EXIT /b 1
   ) ELSE IF "%BE%"=="msvc" (
-    REFRESHENV
+    MKDIR build_ci\cmake
     CD build_ci\cmake
     cmake -G "Visual Studio 15 2017" -D CMAKE_BUILD_TYPE="Release" ..\.. || EXIT /b 1
   )
@@ -75,11 +72,9 @@ IF "%1%"=="prepare" (
     SET BS=cmake
     C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a build"
   ) ELSE IF "%BE%"=="mingw-gcc" (
-    REFRESHENV
     CD build_ci\cmake
     mingw32-make || EXIT /b 1
   ) ELSE IF "%BE%"=="msvc" (
-    REFRESHENV
     CD build_ci\cmake
     cmake --build . --target ALL_BUILD --config Release
   )
@@ -91,8 +86,7 @@ IF "%1%"=="prepare" (
     REM SET SKIP_TEST_SPARSE=1
     REM C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a test"
   ) ELSE IF "%BE%"=="mingw-gcc" (
-    REFRESHENV
-    COPY build_ci\libs\zlib-1.2.11\libzlib.dll build_ci\cmake\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