Skip to content

Renamed DicomMultiFrameStreamer to DICOMMultiFrameStreamer and FAST_M… #271

Renamed DicomMultiFrameStreamer to DICOMMultiFrameStreamer and FAST_M…

Renamed DicomMultiFrameStreamer to DICOMMultiFrameStreamer and FAST_M… #271

Workflow file for this run

name: CI macOS 14 arm64
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
release:
types: [ published ]
workflow_dispatch:
env:
BUILD_TYPE: Release
MACOSX_DEPLOYMENT_TARGET: 11.0
jobs:
build:
runs-on: macos-14
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew install pcre
- name: Setup pyenv
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
MACOSX_DEPLOYMENT_TARGET: 11.0
PYTHON_CONFIGURE_OPTS: "--enable-framework"
CFLAGS: "-Wno-implicit-function-declaration"
LDFLAGS: "-L/usr/local/opt/zlib/lib"
CPPFLAGS: "-I/usr/local/opt/zlib/include"
PKG_CONFIG_PATH: "/usr/local/opt/zlib/lib/pkgconfig"
uses: "gabrielfalcao/pyenv-action@v18"
with:
default: 3.8.18
- name: Install pip dependencies
run: |
pip3 install --upgrade pip
pip3 install twine wheel==0.37.1
- name: Debug
run: |
echo "$(dirname $(pyenv which python))"
echo $(ls "$(dirname $(pyenv which python))/../include/")
- name: Configure CMake
run: |
cmake -B ${{github.workspace}}/build \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}\
-DCMAKE_OSX_ARCHITECTURES:STRING="arm64" \
-DFAST_MODULE_OpenVINO=OFF \
-DFAST_MODULE_DICOM=ON \
-DFAST_MODULE_WholeSlideImaging=ON \
-DFAST_MODULE_OpenIGTLink=ON \
-DFAST_MODULE_Clarius=OFF \
-DFAST_MODULE_TensorFlow=OFF \
-DFAST_MODULE_HDF5=ON \
-DFAST_MODULE_Plotting=ON \
-DFAST_MODULE_Python=ON \
-DFAST_Python_Version="3.8" \
-DFAST_Python_Include="$(dirname $(pyenv which python))/../include/python3.8/" \
-DFAST_Python_Library="$(dirname $(pyenv which python))/../lib/libpython3.8.dylib" \
-DFAST_MODULE_RealSense=OFF \
-DFAST_BUILD_EXAMPLES=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
- name: Build Python wheel
env:
MACOSX_DEPLOYMENT_TARGET: 11.0
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target python-wheel -j 4
- name: Package
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target package -j 4
- name: Upload archive package
uses: actions/upload-artifact@v4
with:
name: Archive package (tar.xz)
path: ${{github.workspace}}/build/fast_*.tar.xz
if-no-files-found: error
- name: Upload Python wheel
uses: actions/upload-artifact@v4
with:
name: Python wheel
path: ${{github.workspace}}/build/python/dist/pyfast-*.whl
if-no-files-found: error
- name: Upload archive package to release
if: ${{ github.event_name == 'release' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{github.workspace}}/build/fast_*.tar.xz
file_glob: true
tag: ${{ github.ref }}
overwrite: true
- name: Upload Python wheel to release
if: ${{ github.event_name == 'release' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{github.workspace}}/build/python/dist/pyfast-*.whl
file_glob: true
tag: ${{ github.ref }}
overwrite: true
- name: Upload Python wheel to PyPi
if: ${{ github.event_name == 'release' && !contains(github.ref, 'rc') }}
run: |
twine upload --username __token__ --password ${{ secrets.PYPI_API_TOKEN }} ${{github.workspace}}/build/python/dist/pyfast-*.whl
test-python-wheel:
name: Test Python Wheel
needs: [build]
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.10', '3.12']
runs-on: macos-14
steps:
- name: Install dependencies
run: |
# OpenCL on apple silicon only supports GPU which
# the GitHub nodes don't have, thus we install pocl
# which supports CPUs
brew install pocl
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: 'Python wheel'
path: ${{github.workspace}}/download/
- name: Create virtual environment and install wheel
run: |
cd ${{github.workspace}}
python -m venv venv # Get error if not using virtual environment for some reason
source venv/bin/activate
python -m pip install --prefer-binary ${{github.workspace}}/download/pyfast-*.whl
- name: Import FAST with Python
run: |
cd ${{github.workspace}}
source venv/bin/activate
# This will fail because there are no OpenCL plaforms available, thus we add || true
python -c "import fast" || true