Skip to content

Build macOS

Build macOS #28

Workflow file for this run

name: Build macOS
on:
push:
branches:
- '*'
pull_request:
branches: [master, release]
workflow_dispatch:
env:
MACOSX_DEPLOYMENT_TARGET: 10.15
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-12
TARGET: macos
CMD_BUILD: python setup.py bdist_wheel --plat-name macosx_10_15_x86_64
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Collect submodules
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download ANTs
uses: robinraju/release-downloader@main
with:
repository: "raidionics/Raidionics-dependencies"
latest: true
fileName: "ANTsX-v2.4.3_macos.tar.gz"
out-file-path: "downloads"
- name: Extract ANTs
run: |
cd ${{github.workspace}}/downloads/
tar -xzf ANTsX-v2.4.3_macos.tar.gz -C ${{github.workspace}}/downloads/
mkdir ${{github.workspace}}/ANTs
# mv ${{github.workspace}}/downloads/install ${{github.workspace}}/ANTs/
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel setuptools
- name: Built wheel for ${{matrix.TARGET}}
run: ${{matrix.CMD_BUILD}}
- name: Upload Python wheel
uses: actions/upload-artifact@v4
with:
name: Python wheel
path: ${{github.workspace}}/dist/raidionicsrads-*.whl
if-no-files-found: error
test:
needs: build
strategy:
matrix:
os: [ macos-12, macos-13]
python-version: ["3.8", "3.9", "3.10", "3.11"]
runs-on: ${{ matrix.os }}
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: "Python wheel"
- name: Install wheel
run: |
pip install --upgrade pip
pip install --no-cache-dir --force-reinstall --find-links=${{github.workspace}} raidionicsrads-*
shell: bash
- name: Test CLI
run: |
raidionicsrads --help
raidionicsseg --help
- name: Clone repo
uses: actions/checkout@v4
- name: Segmentation pipeline unit test
run: cd ${{github.workspace}}/tests && python segmentation_pipeline_test.py
- name: Reporting pipeline unit test
run: cd ${{github.workspace}}/tests && python reporting_pipeline_test.py
- name: Reporting pipeline with BrainGrid unit test
run: cd ${{github.workspace}}/tests && python reporting_pipeline_braingrid_test.py
- name: Registration pipeline unit test with Python backend
run: cd ${{github.workspace}}/tests && python registration_pipeline_test.py