Skip to content

feat: remove save logic and use pymmcore-plus writer from MDAWidget #1744

feat: remove save logic and use pymmcore-plus writer from MDAWidget

feat: remove save logic and use pymmcore-plus writer from MDAWidget #1744

Workflow file for this run

name: Run Tests
on:
push:
branches:
- main
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
pull_request:
branches:
- main
schedule:
- cron: "0 16 * * 1" # monday at noon est
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: py${{ matrix.python-version }} ${{ matrix.backend }} ${{ matrix.platform }}
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [windows-latest, macos-latest]
python-version: ["3.9", "3.10", "3.11"]
backend: [pyside2, pyqt5]
include:
- python-version: "3.8"
platform: windows-latest
backend: pyqt5
- python-version: "3.11"
platform: macos-latest
backend: pyqt6
# still issues in napari
# - python-version: "3.11"
# platform: windows-latest
# backend: pyside6
exclude:
- python-version: "3.11"
backend: pyside2
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Windows OpenGL
if: runner.os == 'Windows'
run: |
git clone --depth 1 https://github.com/pyvista/gl-ci-helpers.git
powershell gl-ci-helpers/appveyor/install_opengl.ps1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -e .[testing,${{ matrix.backend }}]
- name: Install Micro-Manager
run: mmcore install
- name: Test
run: python -m pytest -v --color=yes --cov=napari_micromanager --cov-report=xml
- name: Coverage
uses: codecov/codecov-action@v3
test_linux:
name: py3.9 pyqt5 ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install Linux Micro-Manager build tools and dependencies
run: |
sudo apt-get update
sudo apt-get -y install build-essential autoconf automake libtool autoconf-archive pkg-config
sudo apt-get -y install libboost-all-dev swig3.0
- uses: tlambert03/setup-qt-libs@v1
# - name: Cache micro-manager
# id: cache-micro-manager
# uses: actions/cache@v3
# with:
# path: micro-manager
# key: ${{ runner.os }}-micro-manager-cache-key
- name: Build micro-manager
# if: steps.cache-micro-manager.outputs.cache-hit != 'true'
run: |
git clone https://github.com/micro-manager/micro-manager.git
cd micro-manager
git submodule update --init --recursive
./autogen.sh
./configure --without-java
make -C mmCoreAndDevices/MMDevice -j$(nproc)
make -C mmCoreAndDevices/MMCore -j$(nproc)
- name: Install micro-manager
run: |
cd micro-manager
sudo make install
sudo cp bindist/any-platform/*cfg /usr/local/lib/micro-manager
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -e .[testing,pyqt5]
- name: Run headless test
uses: GabrielBB/xvfb-action@v1
with:
run: python -m pytest -v --color=yes
deploy:
name: Deploy
needs: test
if: "success() && startsWith(github.ref, 'refs/tags/')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: install
run: |
git tag
pip install --upgrade pip
pip install -U build twine check-manifest
check-manifest
python -m build
- name: twine check
run: |
twine check dist/*
ls -lh dist
- name: Build and publish
run: twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }}
- uses: softprops/action-gh-release@v1
with:
generate_release_notes: true