Merge pull request #6130 from N-Dekker/Deprecate-passing-const-image-… #28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ITK.Arm64 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - 'release*' | |
| paths-ignore: | |
| - '*.md' | |
| - LICENSE | |
| - NOTICE | |
| - 'Documentation/**' | |
| - 'Utilities/Debugger/**' | |
| - 'Utilities/ITKv5Preparation/**' | |
| - 'Utilities/Maintenance/**' | |
| - 'Modules/Remote/*.remote.cmake' | |
| pull_request: | |
| paths-ignore: | |
| - '*.md' | |
| - LICENSE | |
| - NOTICE | |
| - 'Documentation/**' | |
| - 'Utilities/Debugger/**' | |
| - 'Utilities/ITKv5Preparation/**' | |
| - 'Utilities/Maintenance/**' | |
| - 'Modules/Remote/*.remote.cmake' | |
| concurrency: | |
| group: '${{ github.workflow }}@${{ github.head_ref || github.ref }}' | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| CMakeVersion: "4.0.1" | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 600 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-24.04-arm | |
| name: "Ubuntu-24.04-arm" | |
| cmake-build-type: "Release" | |
| cmake-generator: "Ninja" | |
| python-version: "" | |
| parallel-level: 4 | |
| ctest-cache: | | |
| BUILD_SHARED_LIBS:BOOL=OFF | |
| BUILD_EXAMPLES:BOOL=OFF | |
| ITK_WRAP_PYTHON:BOOL=OFF | |
| ITK_USE_CLANG_FORMAT:BOOL=OFF | |
| ITK_COMPUTER_MEMORY_SIZE:STRING=11 | |
| ctest-options: "" | |
| - os: macos-15 | |
| name: "x86_64-rosetta" | |
| cmake-build-type: "Release" | |
| cmake-generator: "Ninja" | |
| python-version: "" | |
| parallel-level: 3 | |
| ctest-cache: | | |
| BUILD_SHARED_LIBS:BOOL=OFF | |
| BUILD_EXAMPLES:BOOL=OFF | |
| ITK_WRAP_PYTHON:BOOL=OFF | |
| ITK_USE_CLANG_FORMAT:BOOL=OFF | |
| CMAKE_OSX_ARCHITECTURES:STRING=x86_64 | |
| ITK_COMPUTER_MEMORY_SIZE:STRING=11 | |
| ctest-options: "" | |
| - os: macos-15 | |
| name: "Python" | |
| cmake-build-type: "Release" | |
| cmake-generator: "Ninja" | |
| python-version: "3.11" | |
| parallel-level: 3 | |
| ctest-cache: | | |
| BUILD_SHARED_LIBS:BOOL=OFF | |
| BUILD_EXAMPLES:BOOL=OFF | |
| ITK_WRAP_PYTHON:BOOL=ON | |
| ITK_USE_CLANG_FORMAT:BOOL=OFF | |
| ITK_COMPUTER_MEMORY_SIZE:STRING=11 | |
| ctest-options: "-E itkPyBufferMemoryLeakTest" | |
| name: ARMBUILD-${{ matrix.name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 5 | |
| clean: true | |
| - name: Install ccache | |
| shell: bash | |
| run: | | |
| echo "CCACHE_BASEDIR=${GITHUB_WORKSPACE}" >> "$GITHUB_ENV" | |
| echo "CCACHE_COMPILERCHECK=content" >> "$GITHUB_ENV" | |
| echo "CCACHE_NOHASHDIR=true" >> "$GITHUB_ENV" | |
| echo "CCACHE_SLOPPINESS=pch_defines,time_macros" >> "$GITHUB_ENV" | |
| echo "CCACHE_DIR=${{ runner.temp }}/ccache" >> "$GITHUB_ENV" | |
| echo "CCACHE_MAXSIZE=5G" >> "$GITHUB_ENV" | |
| if [ "$RUNNER_OS" == "Linux" ]; then | |
| sudo apt-get update -qq && sudo apt-get install -y ccache locales | |
| sudo locale-gen de_DE.UTF-8 | |
| elif [ "$RUNNER_OS" == "macOS" ]; then | |
| brew install ccache | |
| fi | |
| - name: Restore compiler cache | |
| id: restore-ccache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ${{ runner.temp }}/ccache | |
| key: ccache-v4-${{ runner.os }}-${{ matrix.name }}-${{ github.sha }} | |
| restore-keys: | | |
| ccache-v4-${{ runner.os }}-${{ matrix.name }}- | |
| - name: Restore ExternalData object store | |
| id: restore-externaldata | |
| uses: actions/cache/restore@v5 | |
| with: | |
| # ExternalData blobs are platform-agnostic; share a single cache | |
| # entry across every workflow/job/OS in the repo. The SHA suffix | |
| # produces an immutable save key per run; restore-keys falls | |
| # through to the most recent prior cache under the same version. | |
| path: ${{ runner.temp }}/ExternalData | |
| key: externaldata-v1-${{ hashFiles('**/*.cid') }} | |
| restore-keys: | | |
| externaldata-v1- | |
| - name: Show ccache configuration, stats and maintenance | |
| shell: bash | |
| run: | | |
| ccache --zero-stats | |
| ccache --evict-older-than 7d | |
| ccache --show-config | |
| - name: Set up Python | |
| if: matrix.python-version != '' | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install Python dependencies | |
| if: matrix.python-version != '' | |
| run: | | |
| set -x | |
| python3 -m pip install --upgrade --pre numpy | |
| - name: Get specific version of CMake, latest Ninja | |
| uses: lukka/get-cmake@v4.0.1 | |
| with: | |
| cmakeVersion: ~${{ env.CMakeVersion }} | |
| ninjaVersion: latest | |
| - name: Download dashboard script | |
| run: | | |
| set -x | |
| git clone -b dashboard --single-branch https://github.com/InsightSoftwareConsortium/ITK.git ITK-dashboard | |
| - name: Export ExternalData_OBJECT_STORES | |
| shell: bash | |
| run: | | |
| echo "ExternalData_OBJECT_STORES=${{ runner.temp }}/ExternalData" >> "$GITHUB_ENV" | |
| - name: Configure CTest script | |
| run: | | |
| cat > ITK-dashboard/dashboard.cmake << EOF | |
| set(CTEST_BUILD_CONFIGURATION "${{ matrix.cmake-build-type }}") | |
| set(CTEST_CMAKE_GENERATOR "${{ matrix.cmake-generator }}") | |
| set(dashboard_cache " | |
| ${{ matrix.ctest-cache }} | |
| CMAKE_C_COMPILER_LAUNCHER:STRING=ccache | |
| CMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache | |
| ") | |
| include(${{ github.workspace }}/ITK-dashboard/github_actions_dashboard.cmake) | |
| EOF | |
| cat ITK-dashboard/dashboard.cmake | |
| - name: Build and test | |
| run: | | |
| set -x | |
| c++ --version | |
| cmake --version | |
| ctest -S ${{ github.workspace }}/ITK-dashboard/dashboard.cmake -V -j ${{ matrix.parallel-level }} ${{ matrix.ctest-options }} | |
| env: | |
| CTEST_OUTPUT_ON_FAILURE: 1 | |
| - name: Report build warnings and errors | |
| if: always() | |
| run: python3 ${{ github.workspace }}/Testing/ContinuousIntegration/report_build_diagnostics.py ${{ github.workspace }}/build | |
| - name: Save compiler cache | |
| if: ${{ !cancelled() }} | |
| uses: actions/cache/save@v5 | |
| with: | |
| path: ${{ runner.temp }}/ccache | |
| key: ccache-v4-${{ runner.os }}-${{ matrix.name }}-${{ github.sha }} | |
| # ExternalData object store is populated by | |
| # .github/workflows/populate-externaldata-cache.yml — a dedicated | |
| # workflow whose only job is to prefetch every CID and write the | |
| # shared cache entry. Consumer workflows (this one, pixi.yml, the | |
| # Azure pipelines) restore-only. Do not reintroduce a Save step | |
| # here: races across platforms overwrite the single shared key with | |
| # a fraction of the expected blobs and poison every subsequent | |
| # restore. | |
| - name: ccache stats | |
| if: always() | |
| run: ccache --show-stats |