From 0e30ddf0564f9c34331cec03774c271b6efae089 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Mon, 9 Jan 2023 17:40:00 -0500 Subject: [PATCH] slicer-macos-preview: Transition build from factory-south-macos to computron Updates: * deployment target from 10.13 to 11.0 * clang from 10.0 to 14.0 * macOS host system from 10.13 (High Sierra) to 13 (Ventura) Also update TEST_TO_EXCLUDE_REGEX to match tests originally specified for factory-south-macos. See https://github.com/Slicer/Slicer/pull/6695 --- computron-slicer_preview_nightly.cmake | 28 +++++-- ...ron-slicerextensions_preview_nightly.cmake | 4 +- computron.sh | 9 ++ ...y-south-macos-slicer_preview_nightly.cmake | 83 ------------------- ...cos-slicerextensions_preview_nightly.cmake | 69 --------------- factory-south-macos.sh | 6 -- ...ote-install-slicerpackagemanager-client.sh | 44 ++++++++++ 7 files changed, 77 insertions(+), 166 deletions(-) delete mode 100644 factory-south-macos-slicer_preview_nightly.cmake delete mode 100644 factory-south-macos-slicerextensions_preview_nightly.cmake create mode 100755 maintenance/computron/remote-install-slicerpackagemanager-client.sh diff --git a/computron-slicer_preview_nightly.cmake b/computron-slicer_preview_nightly.cmake index e348da5..f20e514 100644 --- a/computron-slicer_preview_nightly.cmake +++ b/computron-slicer_preview_nightly.cmake @@ -7,17 +7,17 @@ endmacro() dashboard_set(DASHBOARDS_DIR "/D") dashboard_set(ORGANIZATION "Kitware") # One word, no ponctuation -dashboard_set(HOSTNAME "computron-macos-tests") +dashboard_set(HOSTNAME "computron") dashboard_set(OPERATING_SYSTEM "macOS") dashboard_set(SCRIPT_MODE "Nightly") # Experimental, Continuous or Nightly dashboard_set(Slicer_RELEASE_TYPE "P") # (E)xperimental, (P)review or (S)table dashboard_set(WITH_PACKAGES FALSE) # Enable to generate packages dashboard_set(GIT_TAG "main") # Specify a tag for Stable release if(APPLE) - dashboard_set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13") + dashboard_set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") endif() dashboard_set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -dashboard_set(COMPILER "clang-11.0.3") # Used only to set the build name +dashboard_set(COMPILER "clang-14.0.0") # Used only to set the build name dashboard_set(CTEST_BUILD_FLAGS "-j9 -l8") # Use multiple CPU cores to build. For example "-j -l4" on unix # By default, CMake auto-discovers the compilers #dashboard_set(CMAKE_C_COMPILER "/path/to/c/compiler") @@ -44,13 +44,29 @@ dashboard_set(CTEST_BINARY_DIRECTORY "${DASHBOARDS_DIR}/${Slicer_DASHBOARD_SUBDI set(BUILD_NAME_SUFFIX "") -set(TEST_TO_EXCLUDE_REGEX "") +# Line 194 qSlicerSequencesModule widget has a minimum size hint width of 726px. +# It is wider than the maximum allowed width of 5.2px. (maximum allowed width computed as: 5.2px or 30% of screen width of 1280px) +set(TEST_TO_EXCLUDE_REGEX "qSlicerSequencesModuleWidgetGenericTest") + +# Test fails with "Couldn't mmap icu data file", the error is specific to the build tree. +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|py_WebEngine") + +# FPE Exception occuring with this module for few years. See https://www.slicer.org/wiki/Developer_Meetings/20140826 +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|N4ITKBiasFieldCorrectionTest") + +# PE Signal Caught / signal: SIGFPE with code FPE_FLTOVF +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|ModelMakerGenerateAllOneLabelTest") + +# Disable tests known to fail +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|CastScalarVolumeTest_UnsignedShort") +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|qMRMLUtf8Test1_cube-utf8.mrml") +set(TEST_TO_EXCLUDE_REGEX "${TEST_TO_EXCLUDE_REGEX}|py_nomainwindow_SegmentationsModuleTest2") set(ADDITIONAL_CMAKECACHE_OPTION " -Slicer_VTK_VERSION_MAJOR:STRING=9 ") - +# Custom settings +include("${DASHBOARDS_DIR}/Support/Kitware-SlicerPackagesCredential.cmake") ########################################## # WARNING: DO NOT EDIT BEYOND THIS POINT # diff --git a/computron-slicerextensions_preview_nightly.cmake b/computron-slicerextensions_preview_nightly.cmake index 6190086..9678118 100644 --- a/computron-slicerextensions_preview_nightly.cmake +++ b/computron-slicerextensions_preview_nightly.cmake @@ -13,10 +13,10 @@ dashboard_set(SCRIPT_MODE "Nightly") # Experimental, Continuous dashboard_set(Slicer_RELEASE_TYPE "P") # (E)xperimental, (P)review or (S)table dashboard_set(EXTENSIONS_INDEX_BRANCH "main") # "main", X.Y, ... if(APPLE) - dashboard_set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13") + dashboard_set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") endif() dashboard_set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -dashboard_set(COMPILER "clang-11.0.3") # Used only to set the build name +dashboard_set(COMPILER "clang-14.0.0") # Used only to set the build name dashboard_set(CTEST_BUILD_FLAGS "-j9 -l8") # Use multiple CPU cores to build. For example "-j -l4" on unix # By default, CMake auto-discovers the compilers #dashboard_set(CMAKE_C_COMPILER "/path/to/c/compiler") diff --git a/computron.sh b/computron.sh index d258b54..255ac6e 100755 --- a/computron.sh +++ b/computron.sh @@ -3,6 +3,15 @@ # Clear Slicer settings rm -rf /Users/svc-dashboard/.config/www.na-mic.org/ +# Clear reports to help avoid "The last time you opened ... Do you want to try to reopen its windows again?" dialog +rm -rf /Users/svc-dashboard/Library/Application\ Support/CrashReporter/* + +# Clear "Saved Application State" specific to Slicer +rm -rf /Users/svc-dashboard/Library/Saved\ Application\ State/org.slicer.slicer.savedState/ + +# Restore 'site-packages' directory associated with Slicer 'Stable' build +# TODO: Add logic for restoring 'site-packages'. See factory-south-macos.sh + # Slicer 'Preview' release /D/Support/CMake-3.22.1.app/Contents/bin/ctest -S /D/DashboardScripts/computron-slicer_preview_nightly.cmake -VV -O /D/Logs/computron-slicer_preview_nightly.log diff --git a/factory-south-macos-slicer_preview_nightly.cmake b/factory-south-macos-slicer_preview_nightly.cmake deleted file mode 100644 index 2cf0f4a..0000000 --- a/factory-south-macos-slicer_preview_nightly.cmake +++ /dev/null @@ -1,83 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -macro(dashboard_set var value) - if(NOT DEFINED "${var}") - set(${var} "${value}") - endif() -endmacro() - -dashboard_set(DASHBOARDS_DIR "/Volumes/D") -dashboard_set(ORGANIZATION "Kitware") # One word, no ponctuation -dashboard_set(HOSTNAME "factory-south-macos") -dashboard_set(OPERATING_SYSTEM "macOS") -dashboard_set(SCRIPT_MODE "Nightly") # Experimental, Continuous or Nightly -dashboard_set(Slicer_RELEASE_TYPE "P") # (E)xperimental, (P)review or (S)table -dashboard_set(WITH_PACKAGES TRUE) # Enable to generate packages -dashboard_set(GIT_TAG "main") # Specify a tag for Stable release -if(APPLE) - dashboard_set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13") -endif() -dashboard_set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -dashboard_set(COMPILER "clang-10.0.0") # Used only to set the build name -dashboard_set(CTEST_BUILD_FLAGS "-j9 -l8") # Use multiple CPU cores to build. For example "-j -l4" on unix -# By default, CMake auto-discovers the compilers -#dashboard_set(CMAKE_C_COMPILER "/path/to/c/compiler") -#dashboard_set(CMAKE_CXX_COMPILER "/path/to/cxx/compiler") -dashboard_set(CTEST_BUILD_CONFIGURATION "Release") -dashboard_set(WITH_MEMCHECK FALSE) -dashboard_set(WITH_COVERAGE FALSE) -dashboard_set(WITH_DOCUMENTATION FALSE) -dashboard_set(Slicer_BUILD_CLI ON) -dashboard_set(Slicer_USE_PYTHONQT ON) - -dashboard_set(QT_VERSION "5.15.2") -dashboard_set(Qt5_DIR "${DASHBOARDS_DIR}/Support/qt-everywhere-build-${QT_VERSION}/lib/cmake/Qt5") - -# Source directory : //- -# Build directory : //--build -dashboard_set(Slicer_DIRECTORY_BASENAME "S") -dashboard_set(Slicer_DASHBOARD_SUBDIR "${Slicer_RELEASE_TYPE}") -dashboard_set(Slicer_DIRECTORY_IDENTIFIER "0") # Set to arbitrary integer to distinguish different Experimental/Preview release build - # Set to Slicer version XYZ for Stable release build - -# Build Name: --bits-QT[-NoPython][-NoCLI][-NoVTKDebugLeaks][-]-/Extensions/*.s4ext - -dashboard_set(QT_VERSION "5.15.2") # Used only to set the build name - -# Slicer_SOURCE_DIR: //- -# Slicer_DIR : //--build -dashboard_set(Slicer_DIRECTORY_BASENAME "S") -dashboard_set(Slicer_DASHBOARD_SUBDIR "${Slicer_RELEASE_TYPE}") -dashboard_set(Slicer_DIRECTORY_IDENTIFIER "0") # Set to arbitrary integer to distinguish different Experimental/Preview release build - # Set to Slicer version XYZ for Stable release build -dashboard_set(Slicer_SOURCE_DIR "${DASHBOARDS_DIR}/${Slicer_DASHBOARD_SUBDIR}/${Slicer_DIRECTORY_BASENAME}-${Slicer_DIRECTORY_IDENTIFIER}") -dashboard_set(Slicer_DIR "${DASHBOARDS_DIR}/${Slicer_DASHBOARD_SUBDIR}/${Slicer_DIRECTORY_BASENAME}-${Slicer_DIRECTORY_IDENTIFIER}-build/Slicer-build") - -# CTEST_SOURCE_DIRECTORY: /Extensions/CMake -# CTEST_BINARY_DIRECTORY: //--E[-T]-b -dashboard_set(EXTENSION_DASHBOARD_SUBDIR "${Slicer_RELEASE_TYPE}") -dashboard_set(EXTENSION_DIRECTORY_BASENAME "S") - -dashboard_set(EXTENSIONS_INDEX_GIT_TAG "origin/${EXTENSIONS_INDEX_BRANCH}") # origin/main, origin/X.Y, ... -dashboard_set(EXTENSIONS_INDEX_GIT_REPOSITORY "https://github.com/Slicer/ExtensionsIndex.git") - -# Build Name: --bits-QT[-]- /tmp/$script_name + +set -ex + +[[ \$(hostname) != "${remote_hostname}" ]] && exit 1 + +cd $remote_support_dir + +if [[ ! -d ${venv_name} ]]; then + ${remote_python} -m venv ${venv_name} +fi + +$remote_pip install -U slicer-package-manager-client + +$remote_client --help + +REMOTE_SCRIPT_EOF + +#------------------------------------------------------------------------------ +# Execute script on remote +# +remote_execute /tmp/$script_name