diff options
author | Brad King <brad.king@kitware.com> | 2022-06-07 14:57:07 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-06-07 14:57:13 (GMT) |
commit | 031fa14b7eab1e85882eb5a9e10cb8f7f66c1350 (patch) | |
tree | f263e3db99139c9e77d180991e9595653d49e271 | |
parent | 4224df9eac7a1dd5dad92e90a808de05a2cb72d4 (diff) | |
parent | d14349c907bae69fe06ade224d790e5113945bb2 (diff) | |
download | CMake-031fa14b7eab1e85882eb5a9e10cb8f7f66c1350.zip CMake-031fa14b7eab1e85882eb5a9e10cb8f7f66c1350.tar.gz CMake-031fa14b7eab1e85882eb5a9e10cb8f7f66c1350.tar.bz2 |
Merge topic 'ci-ispc'
d14349c907 ci: Enable ISPC tests on Linux, Windows, and macOS nightly builds
49996faaac ci: remove ISPC from the Fedora CI image
3e791592ad gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scripts
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7336
23 files changed, 110 insertions, 22 deletions
diff --git a/.gitlab/ci/configure_fedora36_makefiles.cmake b/.gitlab/ci/configure_fedora36_makefiles.cmake index 9dc5ca9..c5b5190 100644 --- a/.gitlab/ci/configure_fedora36_makefiles.cmake +++ b/.gitlab/ci/configure_fedora36_makefiles.cmake @@ -73,7 +73,9 @@ set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "") set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "") set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "") set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "") -set(CMake_TEST_ISPC "ON" CACHE STRING "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() set(CMake_TEST_Qt5 "ON" CACHE BOOL "") set(CMake_TEST_UseSWIG "ON" CACHE BOOL "") diff --git a/.gitlab/ci/configure_fedora36_ninja.cmake b/.gitlab/ci/configure_fedora36_ninja.cmake index 7e33513..45d9192 100644 --- a/.gitlab/ci/configure_fedora36_ninja.cmake +++ b/.gitlab/ci/configure_fedora36_ninja.cmake @@ -1,5 +1,7 @@ -set(CMake_TEST_ISPC "ON" CACHE STRING "") set(CMake_TEST_GUI "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() # "Release" flags without "-DNDEBUG" so we get assertions. set(CMAKE_C_FLAGS_RELEASE "-O3" CACHE STRING "") diff --git a/.gitlab/ci/configure_fedora36_ninja_multi.cmake b/.gitlab/ci/configure_fedora36_ninja_multi.cmake index efb4b84..94af721 100644 --- a/.gitlab/ci/configure_fedora36_ninja_multi.cmake +++ b/.gitlab/ci/configure_fedora36_ninja_multi.cmake @@ -1,2 +1,5 @@ -set(CMake_TEST_ISPC "ON" CACHE STRING "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake index f657d98..d3ef93f 100644 --- a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake +++ b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake @@ -1,3 +1,7 @@ set(CMake_TEST_GUI "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/configure_macos_x86_64_ninja.cmake b/.gitlab/ci/configure_macos_x86_64_ninja.cmake index f657d98..d3ef93f 100644 --- a/.gitlab/ci/configure_macos_x86_64_ninja.cmake +++ b/.gitlab/ci/configure_macos_x86_64_ninja.cmake @@ -1,3 +1,7 @@ set(CMake_TEST_GUI "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake index c078f90..7f57181 100644 --- a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake +++ b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake @@ -1 +1,5 @@ +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_ISPC "ON" CACHE STRING "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common_ninja.cmake") diff --git a/.gitlab/ci/docker/fedora36/Dockerfile b/.gitlab/ci/docker/fedora36/Dockerfile index cf6ded9..26f8e3e 100644 --- a/.gitlab/ci/docker/fedora36/Dockerfile +++ b/.gitlab/ci/docker/fedora36/Dockerfile @@ -10,9 +10,6 @@ MAINTAINER Ben Boeckel <ben.boeckel@kitware.com> COPY install_deps.sh /root/install_deps.sh RUN sh /root/install_deps.sh -COPY install_ispc.sh /root/install_ispc.sh -RUN sh /root/install_ispc.sh - COPY --from=rvm-build /root/rvm.tar /root/rvm.tar RUN tar -C /usr/local -xf /root/rvm.tar \ && rm /root/rvm.tar diff --git a/.gitlab/ci/docker/fedora36/install_ispc.sh b/.gitlab/ci/docker/fedora36/install_ispc.sh deleted file mode 100755 index fdc14b5..0000000 --- a/.gitlab/ci/docker/fedora36/install_ispc.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -set -e - -readonly version="1.13.0" -readonly sha256sum="8ab1189bd5db596b3eee9d9465d3528b6626a7250675d67102761bb0d284cd21" - -readonly filename="ispc-v$version-linux" -readonly tarball="$filename.tar.gz" - -echo "$sha256sum $tarball" > ispc.sha256sum -curl -OL "https://github.com/ispc/ispc/releases/download/v$version/$tarball" -sha256sum --check ispc.sha256sum -tar --strip-components=1 -C /usr/local -xf "$tarball" "$filename/bin/ispc" diff --git a/.gitlab/ci/env.ps1 b/.gitlab/ci/env.ps1 new file mode 100755 index 0000000..e24bc37 --- /dev/null +++ b/.gitlab/ci/env.ps1 @@ -0,0 +1,3 @@ +if (Test-Path -Path ".gitlab/ci/env_$env:CMAKE_CONFIGURATION.ps1" -PathType Leaf) { + Invoke-Expression ".gitlab/ci/env_$env:CMAKE_CONFIGURATION.ps1" +} diff --git a/.gitlab/ci/env_fedora36_makefiles.sh b/.gitlab/ci/env_fedora36_makefiles.sh new file mode 100644 index 0000000..217ff30 --- /dev/null +++ b/.gitlab/ci/env_fedora36_makefiles.sh @@ -0,0 +1,3 @@ +if test "$CMAKE_CI_NIGHTLY" = "true"; then + source .gitlab/ci/ispc-env.sh +fi diff --git a/.gitlab/ci/env_fedora36_ninja.sh b/.gitlab/ci/env_fedora36_ninja.sh new file mode 100644 index 0000000..217ff30 --- /dev/null +++ b/.gitlab/ci/env_fedora36_ninja.sh @@ -0,0 +1,3 @@ +if test "$CMAKE_CI_NIGHTLY" = "true"; then + source .gitlab/ci/ispc-env.sh +fi diff --git a/.gitlab/ci/env_fedora36_ninja_multi.sh b/.gitlab/ci/env_fedora36_ninja_multi.sh new file mode 100644 index 0000000..217ff30 --- /dev/null +++ b/.gitlab/ci/env_fedora36_ninja_multi.sh @@ -0,0 +1,3 @@ +if test "$CMAKE_CI_NIGHTLY" = "true"; then + source .gitlab/ci/ispc-env.sh +fi diff --git a/.gitlab/ci/env_macos_x86_64_makefiles.sh b/.gitlab/ci/env_macos_x86_64_makefiles.sh new file mode 100644 index 0000000..217ff30 --- /dev/null +++ b/.gitlab/ci/env_macos_x86_64_makefiles.sh @@ -0,0 +1,3 @@ +if test "$CMAKE_CI_NIGHTLY" = "true"; then + source .gitlab/ci/ispc-env.sh +fi diff --git a/.gitlab/ci/env_macos_x86_64_ninja.sh b/.gitlab/ci/env_macos_x86_64_ninja.sh new file mode 100644 index 0000000..217ff30 --- /dev/null +++ b/.gitlab/ci/env_macos_x86_64_ninja.sh @@ -0,0 +1,3 @@ +if test "$CMAKE_CI_NIGHTLY" = "true"; then + source .gitlab/ci/ispc-env.sh +fi diff --git a/.gitlab/ci/env_windows_vs2022_x64_ninja.ps1 b/.gitlab/ci/env_windows_vs2022_x64_ninja.ps1 new file mode 100755 index 0000000..f8a86c4 --- /dev/null +++ b/.gitlab/ci/env_windows_vs2022_x64_ninja.ps1 @@ -0,0 +1,3 @@ +if ("$env:CMAKE_CI_NIGHTLY" -eq "true") { + Invoke-Expression ".gitlab/ci/ispc-env.ps1" +} diff --git a/.gitlab/ci/ispc-env.ps1 b/.gitlab/ci/ispc-env.ps1 new file mode 100755 index 0000000..1baea31 --- /dev/null +++ b/.gitlab/ci/ispc-env.ps1 @@ -0,0 +1,4 @@ +$pwdpath = $pwd.Path +powershell -File ".gitlab/ci/ispc.ps1" +Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\ispc\bin;$env:PATH" +ispc --version diff --git a/.gitlab/ci/ispc-env.sh b/.gitlab/ci/ispc-env.sh new file mode 100644 index 0000000..31a4494 --- /dev/null +++ b/.gitlab/ci/ispc-env.sh @@ -0,0 +1,3 @@ +.gitlab/ci/ispc.sh +export PATH=$PWD/.gitlab/ispc/bin:$PATH +ispc --version diff --git a/.gitlab/ci/ispc.ps1 b/.gitlab/ci/ispc.ps1 new file mode 100755 index 0000000..13267c3 --- /dev/null +++ b/.gitlab/ci/ispc.ps1 @@ -0,0 +1,19 @@ +$erroractionpreference = "stop" + +$version = "1.18.0" +$sha256sum = "9210BB2D9D3711367FACCB37ACF49966696132560B565471C1C6121F4924A17E" +$filename = "ispc-v$version-windows" +$tarball = "$filename.zip" + +$outdir = $pwd.Path +$outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' +Invoke-WebRequest -Uri "https://github.com/ispc/ispc/releases/download/v$version/$tarball" -OutFile "$outdir\$tarball" +$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 +if ($hash.Hash -ne $sha256sum) { + exit 1 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir") +Move-Item -Path "$outdir\$filename" -Destination "$outdir\ispc" diff --git a/.gitlab/ci/ispc.sh b/.gitlab/ci/ispc.sh new file mode 100755 index 0000000..2804277 --- /dev/null +++ b/.gitlab/ci/ispc.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +set -e + +readonly version="1.18.0" + +case "$(uname -s)-$(uname -m)" in + Linux-x86_64) + shatool="sha256sum" + sha256sum="6c379bb97962e9de7d24fd48b3f7e647dc42be898e9d187948220268c646b692" + platform="linux" + ;; + Darwin-x86_64) + shatool="shasum -a 256" + sha256sum="d1435b541182406ff6b18446d31ecceef0eae3aed7654391ae676d3142e0000d" + platform="macOS" + ;; + *) + echo "Unrecognized platform $(uname -s)-$(uname -m)" + exit 1 + ;; +esac +readonly shatool +readonly sha256sum +readonly platform + +readonly filename="ispc-v$version-$platform" +readonly tarball="$filename.tar.gz" + +cd .gitlab + +echo "$sha256sum $tarball" > ispc.sha256sum +curl -OL "https://github.com/ispc/ispc/releases/download/v$version/$tarball" +$shatool --check ispc.sha256sum +tar xf "$tarball" +mv "$filename" ispc diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index a822d94..0b2d382 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -69,7 +69,7 @@ ### Fedora .fedora36: - image: "kitware/cmake:ci-fedora36-x86_64-2022-05-17" + image: "kitware/cmake:ci-fedora36-x86_64-2022-06-06" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index f36fe6d..da4757a 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -126,6 +126,7 @@ ## macOS-specific scripts .before_script_macos: &before_script_macos + - source .gitlab/ci/env.sh - .gitlab/ci/cmake.sh - export PATH=$PWD/.gitlab/cmake/bin:$PATH - .gitlab/ci/ninja.sh diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index e5febbe..be9ac6c 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -234,6 +234,7 @@ ## Windows-specific scripts .before_script_windows: &before_script_windows + - Invoke-Expression -Command .gitlab/ci/env.ps1 - $pwdpath = $pwd.Path - powershell -File ".gitlab/ci/wix.ps1" - Set-Item -Force -Path "env:WIX" -Value "$pwdpath\.gitlab\wix" @@ -292,6 +293,7 @@ stage: test-ext script: + - Invoke-Expression -Command .gitlab/ci/env.ps1 - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 919015f..dbc3151 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -17,7 +17,7 @@ function(check_files dir) list(SORT expected) file(GLOB_RECURSE actual "${dir}/*") - list(FILTER actual EXCLUDE REGEX "/CMakeFiles/|\\.ninja$|/CMakeCache\\.txt$|/target_files[^/]*\\.cmake$|/\\.ninja_[^/]*$|/cmake_install\\.cmake$|\\.ilk$|\\.manifest$|\\.pdb$|\\.exp$|/install_manifest\\.txt$") + list(FILTER actual EXCLUDE REGEX "/CMakeFiles/|\\.ninja$|/CMakeCache\\.txt$|/target_files[^/]*\\.cmake$|/\\.ninja_[^/]*$|/cmake_install\\.cmake$|\\.ilk$|\\.manifest$|\\.pdb$|\\.exp$|/install_manifest\\.txt$|/\\.qt/QtDeploySupport[^/]*\\.cmake$") foreach(f IN LISTS _check_files_INCLUDE _check_files_EXCLUDE) if(EXISTS ${f}) list(APPEND actual ${f}) |