From: Martin Matuska Date: Thu, 18 Apr 2019 19:54:51 +0000 (+0200) Subject: Use Dockerfiles for Windows and Linux test environments X-Git-Tag: v3.4.0~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21cb62447c3af902a86df0a6f1a888a12491e42e;p=thirdparty%2Flibarchive.git Use Dockerfiles for Windows and Linux test environments --- diff --git a/.cirrus.yml b/.cirrus.yml index 0507bcf4e..770d70a57 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -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 index 000000000..453503e03 --- /dev/null +++ b/build/ci/cirrus_ci/Dockerfile.cygwin @@ -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 index 000000000..d88176b17 --- /dev/null +++ b/build/ci/cirrus_ci/Dockerfile.fedora29 @@ -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 index 000000000..f14bb0bc7 --- /dev/null +++ b/build/ci/cirrus_ci/Dockerfile.mingw @@ -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 index 000000000..c98318289 --- /dev/null +++ b/build/ci/cirrus_ci/Dockerfile.msvc @@ -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 index 000000000..34d6d32a7 --- /dev/null +++ b/build/ci/cirrus_ci/Dockerfile.windows @@ -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 diff --git a/build/ci/cirrus_ci.cmd b/build/ci/cirrus_ci/ci.cmd similarity index 93% rename from build/ci/cirrus_ci.cmd rename to build/ci/cirrus_ci/ci.cmd index 7f57c9c4d..14c0d9dd8 100755 --- a/build/ci/cirrus_ci.cmd +++ b/build/ci/cirrus_ci/ci.cmd @@ -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 diff --git a/build/ci/cirrus_ci.sh b/build/ci/cirrus_ci/ci.sh similarity index 100% rename from build/ci/cirrus_ci.sh rename to build/ci/cirrus_ci/ci.sh