From a5730ffb521173b6fc97c10a6b34a0f7687115c0 Mon Sep 17 00:00:00 2001 From: Ziv Yaniv Date: Thu, 2 Jul 2026 16:00:58 -0400 Subject: [PATCH 1/2] Update CircleCI to retain the built artifacts. Retain the built artifacts in CircleCI. Useful for debugging and possibly manual upload as GitHub release assets. The latter can be done automatically but requires a GitHub Personal Access Token to be set in CircleCI and that requires bot account on the SimpleITK organization and we want to avoid that for now. --- .circleci/config.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index abfb41e..c50734d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -92,8 +92,27 @@ jobs: no_output_timeout: 30m command: | set -x - R -e "Sys.setenv(MAKEJ=3); remotes::install_git(c('.'), lib=c('${R_LIBS}'))" + R -e "Sys.setenv(MAKEJ=3); remotes::install_git(c('.'), lib=c('${R_LIBS}'), upgrade='never', INSTALL_opts='--build')" R -e "library(SimpleITK); Version()" + - run: + name: Rename package + command: | + # package naming is SimpleITK_${PKG_VERSION}_R${R_VERSION_SHORT}_${OS_ARCHIVE_EXT} + R_VERSION_SHORT=$(echo "<< parameters.r-version >>" | cut -d'.' -f1,2) + PKG_VERSION=$(Rscript -e "cat(read.dcf('DESCRIPTION', 'Version')[1])") + + # canonical approach to collecting build artifacts in a directory for upload + mkdir -p artifacts + + # Find the built package and rename according to the naming convention + BUILT_PKG=$(ls SimpleITK_*.tgz | head -1) + PKG_NAME="SimpleITK_${PKG_VERSION}_R${R_VERSION_SHORT}_macos-arm64.tgz" + mv "$BUILT_PKG" "artifacts/$PKG_NAME" + + ls -lh artifacts/ + - store_artifacts: + path: artifacts + destination: . workflows: r-build-test: # Runs on: push to main, pull requests to main, manual trigger, and scheduled runs From 2d7d03b632e6707bb501245db5f2f6815796876d Mon Sep 17 00:00:00 2001 From: Ziv Yaniv Date: Mon, 6 Jul 2026 09:55:19 -0400 Subject: [PATCH 2/2] Downgrade from Xcode 16.4.0 to 14.3.1. On CircleCI the XCode version determines the macOS version (https://circleci.com/docs/guides/test/testing-ios/#supported-xcode-versions). XCode 16.4.0 is macOS 15.3.2, XCode 14.3.1 is macOS 13.2.1. macOS is designed with forward compatibility, software compiled for older OS version should run on a newer version. To support the largest range of macOS versions, downgrade to the oldest available XCode version, currently 14.3.1. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c50734d..6c5ae0c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,7 +14,7 @@ executors: resource_class: large macos-arm: macos: - xcode: 16.4.0 + xcode: 14.3.1 environment: RUNNER_OS: macos resource_class: m4pro.medium