From 9e9a4e027900b0797ea633516aa1bb83aac6c785 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 | 100 ++++++++++++++++++++++++++++++++ 1 file changed, 100 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..7a7a57a5988 --- /dev/null +++ b/.github/workflows/macos-arm.yml @@ -0,0 +1,100 @@ +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 + git clone -b gh-actions-dashboard --single-branch https://github.com/thewtex/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 + ITK_USE_CLANG_FORMAT:BOOL=OFF + ") + 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 -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 + cat '${{ 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