Skip to content

Commit

Permalink
slicer-macos-preview: Transition build from factory-south-macos to co…
Browse files Browse the repository at this point in the history
…mputron

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)
* require Qt 5.15.8 (+ with qtwebengine 5.15.12-lts) instead of Qt 5.15.2

Also update TEST_TO_EXCLUDE_REGEX to match tests originally specified
for factory-south-macos.

See Slicer/Slicer#6695
  • Loading branch information
jcfr committed Jan 16, 2023
1 parent 2280c47 commit 68a8ac6
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 168 deletions.
30 changes: 23 additions & 7 deletions computron-slicer_preview_nightly.cmake
Expand Up @@ -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")
Expand All @@ -29,7 +29,7 @@ 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(QT_VERSION "5.15.8")
dashboard_set(Qt5_DIR "${DASHBOARDS_DIR}/Support/qt-everywhere-build-${QT_VERSION}/lib/cmake/Qt5")

# Source directory : <DASHBOARDS_DIR>/<Slicer_DASHBOARD_SUBDIR>/<Slicer_DIRECTORY_BASENAME>-<Slicer_DIRECTORY_IDENTIFIER>
Expand All @@ -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 #
Expand Down
6 changes: 3 additions & 3 deletions computron-slicerextensions_preview_nightly.cmake
Expand Up @@ -13,18 +13,18 @@ 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")
#dashboard_set(CMAKE_CXX_COMPILER "/path/to/cxx/compiler")
dashboard_set(CTEST_BUILD_CONFIGURATION "Release")
dashboard_set(EXTENSIONS_BUILDSYSTEM_TESTING FALSE) # If enabled, build <Slicer_SOURCE_DIR>/Extensions/*.s4ext

dashboard_set(QT_VERSION "5.15.2") # Used only to set the build name
dashboard_set(QT_VERSION "5.15.8") # Used only to set the build name

# Slicer_SOURCE_DIR: <DASHBOARDS_DIR>/<Slicer_DASHBOARD_SUBDIR>/<Slicer_DIRECTORY_BASENAME>-<Slicer_DIRECTORY_IDENTIFIER>
# Slicer_DIR : <DASHBOARDS_DIR>/<Slicer_DASHBOARD_SUBDIR>/<Slicer_DIRECTORY_BASENAME>-<Slicer_DIRECTORY_IDENTIFIER>-build
Expand Down
9 changes: 9 additions & 0 deletions computron.sh
Expand Up @@ -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

Expand Down
83 changes: 0 additions & 83 deletions factory-south-macos-slicer_preview_nightly.cmake

This file was deleted.

69 changes: 0 additions & 69 deletions factory-south-macos-slicerextensions_preview_nightly.cmake

This file was deleted.

6 changes: 0 additions & 6 deletions factory-south-macos.sh
Expand Up @@ -11,12 +11,6 @@ rm -rf /Users/kitware/Library/Application\ Support/CrashReporter/*
# Clear "Saved Application State" specific to Slicer
rm -rf /Users/kitware/Library/Saved\ Application\ State/org.slicer.slicer.savedState/

# Slicer 'Preview' release
/Volumes/D/Support/CMake-3.22.1.app/Contents/bin/ctest -S /Volumes/D/DashboardScripts/factory-south-macos-slicer_preview_nightly.cmake -VV -O /Volumes/D/Logs/factory-south-macos-slicer_preview_nightly.log

# Slicer 'Preview' release extensions
/Volumes/D/Support/CMake-3.22.1.app/Contents/bin/ctest -S /Volumes/D/DashboardScripts/factory-south-macos-slicerextensions_preview_nightly.cmake -VV -O /Volumes/D/Logs/factory-south-macos-slicerextensions_preview_nightly.log

# Restore 'site-packages' directory associated with Slicer 'Stable' build
rm -rf /Volumes/D/S/S-0-build/python-install/lib/python3.9/site-packages
cp -rp \
Expand Down
@@ -0,0 +1,44 @@
#!/usr/bin/env bash

set -ex

dashboard_dir=$(cd $(dirname $0) || exit 1; pwd)
source $dashboard_dir/../common/remote_execute.sh

#------------------------------------------------------------------------------
# Set script properties
#
remote_support_dir="/D/Support"

proj_name="slicer_package_manager"
venv_name="${proj_name}-venv"
remote_python="/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10"
remote_pip="${remote_support_dir}/${venv_name}/bin/pip"
remote_client="${remote_support_dir}/${venv_name}/bin/slicer_package_manager_client"

#------------------------------------------------------------------------------
# Generate script
#
script_name=$(basename $0)
cat << REMOTE_SCRIPT_EOF > /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

0 comments on commit 68a8ac6

Please sign in to comment.