From d2548db9c10914bc8c55ed88cea9ccc113431f26 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 14 Mar 2024 17:59:13 -0400 Subject: [PATCH] WIP: ENH: Add macOS ARM GitHub Actions configuration --- .github/workflows/macos-arm.yml | 97 +++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .github/workflows/macos-arm.yml diff --git a/.github/workflows/macos-arm.yml b/.github/workflows/macos-arm.yml new file mode 100644 index 00000000000..f90d035919b --- /dev/null +++ b/.github/workflows/macos-arm.yml @@ -0,0 +1,97 @@ +name: ITK.macOS.Arm64 + +on: + push: + branches: + - master + - 'release*' + paths-ignore: + - '*.md' + - LICENSE + - NOTICE + - Documentation/* + - Utilities/Debugger/* + - Utilities/ITKv5Preparation/* + - Utilities/Maintenance/* + pull_request: + paths-ignore: + - '*.md' + - LICENSE + - NOTICE + - Documentation/* + - Utilities/Debugger/* + - Utilities/ITKv5Preparation/* + - Utilities/Maintenance/* + +env: + ExternalDataVersion: 5.3.0 + +jobs: + macOS: + runs-on: macos-14 + timeout-minutes: 0 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 5 + clean: true + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + set -x + python3 -m pip install ninja + python3 -m pip install --upgrade setuptools + python3 -m pip install scikit-ci-addons + python3 -m pip install lxml + + - name: Download dashboard script and testing data + run: | + set -x + git clone -b dashboard --single-branch https://github.com/InsightSoftwareConsortium/ITK.git ITK-dashboard + + curl -L https://github.com/InsightSoftwareConsortium/ITK/releases/download/v${{ env.ExternalDataVersion }}/InsightData-${{ env.ExternalDataVersion }}.tar.gz -O + cmake -E tar xfz InsightData-${{ env.ExternalDataVersion }}.tar.gz + cmake -E rename InsightToolkit-${{ env.ExternalDataVersion }}/.ExternalData/MD5 ${{ github.workspace }}/.ExternalData/MD5 + + - name: Configure CTest script + run: | + cat > ITK-dashboard/dashboard.cmake << EOF + set(CTEST_BUILD_CONFIGURATION "Release") + set(CTEST_CMAKE_GENERATOR "Ninja") + set(dashboard_cache " + BUILD_SHARED_LIBS:BOOL=ON + BUILD_EXAMPLES:BOOL=ON + ITK_WRAP_PYTHON:BOOL=OFF + ") + include(${{ github.workspace }}/ITK-dashboard/azure_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 -VV -j 4 + env: + CTEST_OUTPUT_ON_FAILURE: 1 + + - name: Format CTest output in JUnit format + if: always() + run: | + ci_addons ctest_junit_formatter ${{ github.workspace }}-build > ${{ github.workspace }}/JUnitTestResults.xml + + - name: Publish test results + uses: mikepenz/action-junit-report@v2 + if: always() + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + report_paths: '${{ github.workspace }}/JUnitTestResults.xml' \ No newline at end of file