Commit 812cac0c authored by Ben Boeckel's avatar Ben Boeckel Committed by Kitware Robot
Browse files

Merge topic 'gitlab-ci-windows'

e51dd6a3 gitlab-ci: allow failure in Windows tests
688f9761 ci: disable sccache on Windows
aae2589b gitlab-ci: run jobs only on demand
092de3e0 gitlab-ci: allow 2 hours for Windows builds
74127cbe gitlab-ci: add Windows builds
bc112b3d gitlab-ci: add scripts for use by Windows builds
c6624bf5 ci: upload other platform packages to CDash as well
6161879d

 ci: clone paraview underneath the source tree
...
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Acked-by: Cory Quammen's avatarCory Quammen <cory.quammen@kitware.com>
Merge-request: !745
parents d40b6498 e51dd6a3
......@@ -5,6 +5,7 @@ include:
# OS builds.
- local: .gitlab/os-linux.yml
- local: .gitlab/os-windows.yml
# Post-build steps
- local: .gitlab/upload.yml
......@@ -41,7 +42,7 @@ build:linux-plain:
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags
- .run_automatically
- .run_manually
test:linux-plain:
extends:
......@@ -74,7 +75,7 @@ build:linux-egl:
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags
- .run_automatically
- .run_manually
test:linux-egl:
extends:
......@@ -108,7 +109,7 @@ build:linux-osmesa-shared:
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags
- .run_automatically
- .run_manually
test:linux-osmesa-shared:
extends:
......@@ -144,7 +145,7 @@ build:linux-osmesa-static:
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags
- .run_automatically
- .run_manually
test:linux-osmesa-static:
extends:
......@@ -157,3 +158,73 @@ test:linux-osmesa-static:
- build:linux-osmesa-static
needs:
- build:linux-osmesa-static
# Windows
## MPI build
build:windows-vs2019-mpi:
extends:
- .windows_vs2019_mpi
- .cmake_build_windows
- .cmake_build_artifacts
- .windows_builder_tags
- .run_manually
timeout: 2 hours
test:windows-vs2019-mpi:
extends:
- .windows_vs2019_mpi
- .cmake_test_windows
- .cmake_package_artifacts
- .windows_builder_tags
- .run_automatically
dependencies:
- build:windows-vs2019-mpi
needs:
- build:windows-vs2019-mpi
upload:windows-vs2019-mpi:
extends:
- .rsync_upload
- .upload_only
dependencies:
- test:windows-vs2019-mpi
needs:
- test:windows-vs2019-mpi
variables:
RSYNC_DESTINATION: paraview_nightly_bin
## non-MPI build
build:windows-vs2019-nompi:
extends:
- .windows_vs2019_nompi
- .cmake_build_windows
- .cmake_build_artifacts
- .windows_builder_tags
- .run_manually
timeout: 2 hours
test:windows-vs2019-nompi:
extends:
- .windows_vs2019_nompi
- .cmake_test_windows
- .cmake_package_artifacts
- .windows_builder_tags
- .run_automatically
dependencies:
- build:windows-vs2019-nompi
needs:
- build:windows-vs2019-nompi
upload:windows-vs2019-nompi:
extends:
- .rsync_upload
- .upload_only
dependencies:
- test:windows-vs2019-nompi
needs:
- test:windows-vs2019-nompi
variables:
RSYNC_DESTINATION: paraview_nightly_bin
......@@ -13,6 +13,7 @@
- build/superbuild/*/stamp/*.log
# Packages
- build/ParaView-*.exe
- build/ParaView-*.tar.*
- build/ParaView-*.dmg
- build/ParaView-*.zip
......@@ -48,6 +49,7 @@
# Tests failing should still upload the artifact for further testing.
when: always
paths:
- build/ParaView-*.exe
- build/ParaView-*.tar.*
- build/ParaView-*.dmg
- build/ParaView-*.zip
$erroractionpreference = "stop"
if ($env:PARAVIEW_URL) {
$url = $env:PARAVIEW_URL
} else {
$url = "https://gitlab.kitware.com/paraview/paraview.git"
}
# figure out which ParaView branch to checkout.
if ($env:PARAVIEW_BRANCH) {
$pv_branch = $env:PARAVIEW_BRANCH
} elseif ($env:CI_COMMIT_TAG) {
$pv_branch = $env:CI_COMMIT_TAG
} elseif ($env:CI_MERGE_REQUEST_TARGET_BRANCH_NAME) {
$pv_branch = $env:CI_MERGE_REQUEST_TARGET_BRANCH_NAME
} elseif ($env:CI_COMMIT_BRANCH) {
$pv_branch = $env:CI_COMMIT_BRANCH
} else {
$pv_branch = "master"
}
# full clone of paraview with shallow-submodule. full clone needed so that `git describe` works correctly
git clone --recursive --shallow-submodules -b "$pv_branch" "$url" "$env:CI_PROJECT_DIR\source-paraview"
# let's print ParaView version for reference even when the artifacts disappear
git -C "$CI_PROJECT_DIR\source-paraview" describe
......@@ -7,17 +7,24 @@ set -e
# CI_COMMIT_TAG is set when building a tag, and
# CI_MERGE_REQUEST_TARGET_BRANCH_NAME is set when building an MR.
# We check them one after the other to pick the default branch name.
readonly sb_branch="${CI_COMMIT_BRANCH:-${CI_COMMIT_TAG:-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-master}}}"
readonly url="${PARAVIEW_URL:-https://gitlab.kitware.com/paraview/paraview.git}"
# figure out which ParaView branch to checkout.
readonly pv_branch="${PARAVIEW_BRANCH:-$sb_branch}"
# since we do shallow clones, we need to cleanup old checkouts
rm -rf $CI_BUILDS_DIR/source-paraview
if [ -n "$PARAVIEW_BRANCH" ]; then
pv_branch="$PARAVIEW_BRANCH"
elif [ -n "$CI_COMMIT_TAG" ]; then
pv_branch="$CI_COMMIT_TAG"
elif [ -n "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
pv_branch="$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
elif [ -n "$CI_COMMIT_BRANCH" ]; then
pv_branch="$CI_COMMIT_BRANCH"
else
pv_branch="master"
fi
readonly pv_branch
# full clone of paraview with shallow-submodule. full clone needed so that `git describe` works correctly
git clone --recursive --shallow-submodules -b $pv_branch $url $CI_BUILDS_DIR/source-paraview
git clone --recursive --shallow-submodules -b "$pv_branch" "$url" "$CI_PROJECT_DIR/source-paraview"
# let's print ParaView version for reference even when the artifacts disappear
git -C $CI_BUILDS_DIR/source-paraview describe
git -C "$CI_PROJECT_DIR/source-paraview" describe
$erroractionpreference = "stop"
$version = "3.17.3"
$sha256sum = "8A02DE221AA96C236A947B28CA1BD6327B9BB82FA74B91E5CAA49FFD6A642AE2"
$filename = "cmake-$version-win64-x64"
$tarball = "$filename.zip"
$outdir = $pwd.Path
$outdir = "$outdir\.gitlab"
Invoke-WebRequest -Uri "https://github.com/Kitware/CMake/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\cmake"
......@@ -52,7 +52,10 @@ set(qt5_EXTRA_CONFIGURATION_OPTIONS "-no-use-gold-linker" CACHE STRING "")
# output suppressions
set(SUPPRESS_boost_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_embree_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_gdal_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_numpy_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_openimagedenoise_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_paraview_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_python3_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_pythonzope_OUTPUT ON CACHE BOOL "")
......@@ -61,6 +64,14 @@ set(SUPPRESS_qt5_OUTPUT ON CACHE BOOL "")
set(SUPPRESS_scipy_OUTPUT ON CACHE BOOL "")
set(paraview_SOURCE_SELECTION "source" CACHE STRING "")
set(paraview_SOURCE_DIR "$ENV{CI_BUILDS_DIR}/source-paraview" CACHE PATH "")
file(TO_CMAKE_PATH "$ENV{CI_PROJECT_DIR}/source-paraview" paraview_source_dir)
set(paraview_SOURCE_DIR "${paraview_source_dir}" CACHE PATH "")
# Default to Release builds.
if ("$ENV{CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "")
else ()
set(CMAKE_BUILD_TYPE "$ENV{CMAKE_BUILD_TYPE}" CACHE STRING "")
endif ()
include("${CMAKE_CURRENT_LIST_DIR}/configure_sccache.cmake")
set(qt5_SKIP_PCH "ON" CACHE BOOL "")
# Linux replaces `CC` and `CXX`
if (NOT "$ENV{CI_JOB_NAME}" MATCHES "linux" AND
# Something doesn't work when using sccache.
NOT "$ENV{CI_JOB_NAME}" MATCHES "windows")
set(CMAKE_C_COMPILER_LAUNCHER "sccache" CACHE STRING "")
set(CMAKE_CXX_COMPILER_LAUNCHER "sccache" CACHE STRING "")
endif ()
set(PACKAGE_SYSTEM_QT ON CACHE BOOL "")
set(ENABLE_nvidiaindex ON CACHE BOOL "")
set(ENABLE_openimagedenoise OFF CACHE BOOL "")
set(ENABLE_visrtx ON CACHE BOOL "")
set(ENABLE_vortexfinder2 OFF CACHE BOOL "")
file(TO_CMAKE_PATH "$ENV{CI_PROJECT_DIR}/.gitlab/qt" cmake_qt_prefix)
set(CMAKE_PREFIX_PATH "${cmake_qt_prefix}" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
set(ENABLE_mpi ON CACHE BOOL "")
# https://github.com/ospray/module_mpi/issues/2
set(ENABLE_ospraymodulempi OFF CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_windows.cmake")
set(ENABLE_mpi OFF CACHE BOOL "")
set(ENABLE_ospraymodulempi OFF CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_windows.cmake")
......@@ -30,6 +30,14 @@ foreach (target IN LISTS targets_to_build)
ctest_submit(PARTS Build)
endforeach ()
file(GLOB logs
"${CTEST_BINARY_DIRECTORY}/superbuild/*/stamp/*-build-*.log"
"${CTEST_BINARY_DIRECTORY}/superbuild/*/stamp/*-install-*.log")
if (logs)
list(APPEND CTEST_NOTES_FILES ${logs})
ctest_submit(PARTS Notes)
endif ()
if (build_result)
message(FATAL_ERROR
"Failed to build")
......
......@@ -13,7 +13,11 @@ ctest_test(
ctest_submit(PARTS Test)
# upload generated packages to CDash
file(GLOB files "${CTEST_BINARY_DIRECTORY}/*.tar.*")
file(GLOB files
"${CTEST_BINARY_DIRECTORY}/*.dmg"
"${CTEST_BINARY_DIRECTORY}/*.exe"
"${CTEST_BINARY_DIRECTORY}/*.tar.*"
"${CTEST_BINARY_DIRECTORY}/*.zip")
if (files)
ctest_upload(FILES ${files})
ctest_submit(PARTS Upload)
......
cmake_minimum_required(VERSION 3.12)
# Input variables.
set(qt_version_major "5")
set(qt_version_minor "15")
set(qt_version_patch "0")
# This URL is only visible inside of Kitware's network. Please use your own Qt
# Account to obtain these files.
set(qt_url_root "https://paraview.org/files/dependencies/internal/qt")
# Determine the ABI to fetch for Qt.
if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2015")
set(qt_platform "windows_x86")
set(msvc_year "2015")
set(qt_abi "win64_msvc${msvc_year}_64")
elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2017" OR
"$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2019")
set(qt_platform "windows_x86")
set(msvc_year "2017")
set(qt_abi "win64_msvc${msvc_year}_64")
elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "macos")
set(qt_platform "mac_x64")
set(qt_abi "clang_64")
else ()
message(FATAL_ERROR
"Unknown ABI to use for Qt")
endif ()
# Combined version variables.
set(qt_version "${qt_version_major}.${qt_version_minor}.${qt_version_patch}")
set(qt_version_nodot "${qt_version_major}${qt_version_minor}${qt_version_patch}")
# Files needed to download.
set(qt_files)
if (qt_platform STREQUAL "windows_x86")
if (msvc_year STREQUAL "2017")
set(qt_build_stamp "202002260536")
elseif (msvc_year STREQUAL "2015")
set(qt_build_stamp "202005150700")
else ()
message(FATAL_ERROR
"Build stamp for MSVC ${msvc_year} is unknown")
endif ()
set(qt_file_name_prefix "${qt_version}-0-${qt_build_stamp}")
list(APPEND qt_files
"${qt_file_name_prefix}d3dcompiler_47-x64.7z"
"${qt_file_name_prefix}opengl32sw-64-mesa_12_0_rc2.7z")
foreach (qt_component IN ITEMS qtbase qtsvg qttools qtxmlpatterns)
list(APPEND qt_files
"${qt_file_name_prefix}${qt_component}-Windows-Windows_10-MSVC${msvc_year}-Windows-Windows_10-X86_64.7z")
endforeach ()
set(qt_subdir "${qt_version}/msvc${msvc_year}_64")
elseif (qt_platform STREQUAL "mac_x64")
set(qt_build_stamp "202005140805")
set(qt_file_name_prefix "${qt_version}-0-${qt_build_stamp}")
foreach (qt_component IN ITEMS qtbase qtsvg qttools qtxmlpatterns)
list(APPEND qt_files
"${qt_file_name_prefix}${qt_component}-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z")
endforeach ()
set(qt_subdir "${qt_version}/clang_64")
else ()
message(FATAL_ERROR
"Unknown files for ${qt_platform}")
endif ()
# Verify that we know what directory will be extracted.
if (NOT qt_subdir)
message(FATAL_ERROR
"The extracted subdirectory is not set")
endif ()
# Build up the path to the file to download.
set(qt_url_path "${qt_platform}/desktop/qt5_${qt_version_nodot}/qt.qt5.${qt_version_nodot}.${qt_abi}")
set(qt_url_prefix "${qt_url_root}/${qt_url_path}")
# Include the file containing the hashes of the files that matter.
include("${CMAKE_CURRENT_LIST_DIR}/download_qt_hashes.cmake")
# Download and extract each file.
foreach (qt_file IN LISTS qt_files)
# Ensure we have a hash to verify.
if (NOT DEFINED "${qt_file}_hash")
message(FATAL_ERROR
"Unknown hash for ${qt_file}")
endif ()
# Download the file.
file(DOWNLOAD
"${qt_url_prefix}/${qt_file}"
".gitlab/${qt_file}"
STATUS download_status
EXPECTED_HASH "SHA256=${${qt_file}_hash}")
# Check the download status.
list(GET download_status 0 res)
if (res)
list(GET download_status 1 err)
message(FATAL_ERROR
"Failed to download ${qt_file}: ${err}")
endif ()
# Extract the file.
execute_process(
COMMAND
"${CMAKE_COMMAND}"
-E tar
xf "${qt_file}"
WORKING_DIRECTORY ".gitlab"
RESULT_VARIABLE res
ERROR_VARIABLE err
ERROR_STRIP_TRAILING_WHITESPACE)
if (res)
message(FATAL_ERROR
"Failed to extract ${qt_file}: ${err}")
endif ()
endforeach ()
# The Windows tarballs have some unfortunate permissions in them that prevent
# deletion when `git clean -ffdx` tries to clean up the directory.
if (qt_platform STREQUAL "windows_x86")
# Fix permissions.
file(TO_NATIVE_PATH ".gitlab/${qt_subdir}/*.*" native_qt_dir)
execute_process(
# Remove any read-only flags that aren't affected by `icacls`.
COMMAND
attrib
-r # Remove readonly flag
"${native_qt_dir}"
/d # Treat as a directory
/s # Recursive
/l # Don't dereference symlinks
RESULT_VARIABLE res
ERROR_VARIABLE err
ERROR_STRIP_TRAILING_WHITESPACE)
if (res)
message(FATAL_ERROR
"Failed to fix remove read-only flags in ${qt_file}: ${err}")
endif ()
endif ()
# Move to a predictable prefix.
file(RENAME
".gitlab/${qt_subdir}"
".gitlab/qt")
# Lines can be generated by doing:
#
# sha256sum $files | awk '{ print "set(\"" $2 "_hash\" " $1 ")" }' >> $thisfile
set("5.15.0-0-202002260536d3dcompiler_47-x64.7z_hash" 428a8b5d74b31d42a234d9ddc05a1f13f9a651b0798094215b25263108983a95)
set("5.15.0-0-202002260536opengl32sw-64-mesa_12_0_rc2.7z_hash" dd40f61374ba988afabcb239713a10504816d7afc2997707c7ebcbe57eb30112)
set("5.15.0-0-202002260536qtbase-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" c041596be8f7a16c7be9ea6757c14766ff3200ab6d56f7db8f865dbfe039fe20)
set("5.15.0-0-202002260536qtsvg-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" 5c29598c8b9251536a9a2679dbabce20628c6cd51a66d9fe9d68ddbe0c69c172)
set("5.15.0-0-202002260536qttools-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" ba02878360ca11c90b7c7581a673383a698d17f771d672070af9330b6b789586)
set("5.15.0-0-202002260536qtxmlpatterns-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" 56abd417c82d3f1327b8f60d1a7bccdfd1d34c3fea110a91d9d13d7e01fb76e3)
set("5.15.0-0-202005150700d3dcompiler_47-x64.7z_hash" 45b4c38886ef42368b62bdb9cec2e06fc3a68bc94696fdf2f83c9bdf29b0161f)
set("5.15.0-0-202005150700opengl32sw-64-mesa_12_0_rc2.7z_hash" 2f94c5315fccfa51bc547dc5eec7612dbc0646f12e4511bbc81f921066a1c245)
set("5.15.0-0-202005150700qtbase-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 0c2653c5eca256f59c0b48b537cd633b05560e4241c0226856d2ae22ab066df4)
set("5.15.0-0-202005150700qtsvg-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 12a32da7bbca6d1adc8702088205ca96b806337ee7e6a134658c592754b6b468)
set("5.15.0-0-202005150700qttools-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 976d87ede6d03cd0ebd025e5769cf9ce76c625fa2e19de6ea5f9e74d8f11cafd)
set("5.15.0-0-202005150700qtxmlpatterns-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 50e7e7c4c6ad558037bb6561406bca47d16ad56bfbd16219325006a628cc7f14)
set("5.15.0-0-202005140805qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" 04d867c81d2431f288c42c9752642759460b9468477de349368dcc8de0c8ddc4)
set("5.15.0-0-202005140805qtsvg-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" 578fab3a9b5fd945f30f3d82bdbe8203a904fe4a215fef82997d431680cb3f8f)
set("5.15.0-0-202005140805qttools-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" 1858dae8848bc93f943a17b76a45ec3fe0e8c3be41b6ce7f46cdff14addbae78)
set("5.15.0-0-202005140805qtxmlpatterns-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" e083217bd03129d8524c5c3b7d98c2048c6c119f1ba3965fff147357f8e3d7d8)
$erroractionpreference = "stop"
$version = "1.10.0"
$sha256sum = "919FD158C16BF135E8A850BB4046EC1CE28A7439EE08B977CD0B7F6B3463D178"
$filename = "ninja-win"
$tarball = "$filename.zip"
$outdir = $pwd.Path
$outdir = "$outdir\.gitlab"
Invoke-WebRequest -Uri "https://github.com/ninja-build/ninja/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")
$erroractionpreference = "stop"
cmd /c "`"$env:VCVARSALL`" $VCVARSPLATFORM -vcvars_ver=$VCVARSVERSION & set" |
foreach {
if ($_ -match "=") {
$v = $_.split("=")
[Environment]::SetEnvironmentVariable($v[0], $v[1])
}
}
......@@ -90,8 +90,8 @@
.before_script_linux_paraview: &before_script_linux_paraview
- .gitlab/ci/checkout_paraview.sh
- export PARAVIEW_COMMIT_SHA=`git -C $CI_BUILDS_DIR/source-paraview rev-parse HEAD`
- export PARAVIEW_COMMIT_SHORT_SHA=`git -C $CI_BUILDS_DIR/source-paraview rev-parse --short HEAD`
- export PARAVIEW_COMMIT_SHA=`git -C $CI_PROJECT_DIR/source-paraview rev-parse HEAD`
- export PARAVIEW_COMMIT_SHORT_SHA=`git -C $CI_PROJECT_DIR/source-paraview rev-parse --short HEAD`
.cmake_build_linux:
stage: build
......
# Windows-specific builder configurations and build commands
## Base configurations
.windows:
variables:
GIT_SUBMODULE_STRATEGY: none
GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmb-ci-ext\\$CI_CONCURRENT_ID"
### Build and test
.windows_build:
extends: .windows
variables:
# Note that shell runners only support runners with a single
# concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may
# change between the build and test stages which CMake doesn't support.
# Even if we could, it could change if other runners on the machine
# could run at the same time, so we drop it.
GIT_CLONE_PATH: "$CI_BUILDS_DIR\\paraview-ci"
.windows_vs2019:
extends: .windows_build
variables:
VCVARSALL: "${VS160COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
VCVARSPLATFORM: "x64"
VCVARSVERSION: "14.26"
.windows_vs2019_mpi:
extends: .windows_vs2019
variables:
CMAKE_CONFIGURATION: windows_vs2019_mpi
.windows_vs2019_nompi:
extends: .windows_vs2019
variables:
CMAKE_CONFIGURATION: windows_vs2019_nompi
## Tags
.windows_builder_tags:
tags:
- paraview # Since this is a bare runner, pin to a project.
- msvc-19.26
- nonconcurrent
- shell
- vs2019
- windows
## Windows-specific scripts
.before_script_windows: &before_script_windows
- Invoke-Expression -Command .gitlab/ci/cmake.ps1
- Invoke-Expression -Command .gitlab/ci/ninja.ps1
- $pwdpath = $pwd.Path
- Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$pwdpath\.gitlab\cmake\bin;$env:PATH"
- cmake --version
- ninja --version
# Support submodule references to the user's fork.
- git submodule update --init --recursive
- git submodule foreach --recursive cmake "-Dusername:STRING=$CI_PROJECT_NAMESPACE" "-Durl_prefix:STRING=https://$CI_SERVER_HOST" -P "$pwdpath/.gitlab/ci/fetch_submodule.cmake"
- git submodule sync --recursive
- git submodule update --init --recursive
.before_script_windows_deps: &before_script_windows_deps
- cmake -P .gitlab/ci/download_qt.cmake
- Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\qt\bin;$env:PATH"
# Add the outputs to the PATH
- Set-Item -Force -Path "env:PATH" -Value "$pwdpath\build\install\Python;$env:PATH;$pwdpath\build\install\bin"
- Set-Item -Force -Path "env:PYTHONHOME" -Value "$pwdpath\build\install\Python"
.before_script_windows_paraview: &before_script_windows_paraview
- .gitlab/ci/checkout_paraview.ps1
- git -C $env:CI_PROJECT_DIR\source-paraview rev-parse HEAD | Tee-Object -Variable paraview_commit_sha
- git -C $env:CI_PROJECT_DIR\source-paraview rev-parse --short HEAD | Tee-Object -Variable paraview_commit_short_sha
- Set-Item -Force -Path "env:PARAVIEW_COMMIT_SHA" -Value "$paraview_commit_sha"
- Set-Item -Force -Path "env:PARAVIEW_COMMIT_SHORT_SHA" -Value "$paraview_commit_short_sha"
.cmake_build_windows:
stage: build
script:
- *before_script_windows
- *before_script_windows_deps
- *before_script_windows_paraview
- Set-Item -Force -Path "env:GIT_CEILING_DIRECTORIES" -Value "$pwdpath"
- Set-Item -Force -Path "env:PATH" -Value "$env:PATH;$env:SCCACHE_PATH"
- Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1
- sccache --start-server
- sccache --show-stats
- ctest -VV -S .gitlab/ci/ctest_configure.cmake
- ctest -VV -S .gitlab/ci/ctest_build.cmake
- ctest -V --output-on-failure -S .gitlab/ci/ctest_package.cmake