Renamed DicomMultiFrameStreamer to DICOMMultiFrameStreamer and FAST_M… #271
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: 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 |