Drop support for out-of-support versions of Python, apply upgrade fixes #941
Workflow file for this run
This file contains 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 | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
python-version: ['3.9'] | |
PYTEST_QT_API: [pyqt5, pyside2] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
# - name: Install system dependencies | |
# shell: bash -l {0} | |
# run: | | |
# if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then | |
# sudo apt-get install -y coreutils | |
# sudo apt-get install -y xvfb herbstluftwm | |
# elif [ "${{ matrix.os }}" = "macos-latest" ]; then | |
# brew install coreutils | |
# brew install --cask xquartz | |
# fi | |
- name: Set up Python | |
shell: bash -l {0} | |
run: | | |
conda install -q -y python=${{ matrix.python-version }} | |
which python | |
python --version | |
pip --version | |
- name: Install dependencies | |
shell: bash -l {0} | |
run: | | |
if [ "${{ matrix.PYTEST_QT_API }}" = "pyside2" ]; then | |
conda install -q -y pyside2 -c conda-forge | |
# should be installed via pip | |
# else | |
# conda install -q -y pyqt=5 | |
fi | |
pip install -r requirements-dev.txt | |
- name: Install main | |
shell: bash -l {0} | |
run: | | |
pip install . | |
- name: Run ruff | |
shell: bash -l {0} | |
if: matrix.os != 'windows-latest' | |
run: | | |
ruff format --check | |
ruff check | |
- name: Test with pytest | |
shell: bash -l {0} | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
PYTEST_QT_API: ${{ matrix.PYTEST_QT_API }} | |
MPLBACKEND: 'agg' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y xvfb libqt5widgets5 | |
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & | |
export DISPLAY=:99 | |
pytest tests | |
- name: Run examples | |
shell: bash -l {0} | |
if: matrix.os != 'windows-latest' | |
env: | |
MPLBACKEND: agg | |
run: | | |
labelme --help | |
labelme --version | |
(cd examples/primitives && labelme_json_to_dataset primitives.json && rm -rf primitives_json) | |
(cd examples/tutorial && rm -rf apc2016_obj3_json && labelme_json_to_dataset apc2016_obj3.json && python load_label_png.py && git checkout -- .) | |
(cd examples/semantic_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .) | |
(cd examples/instance_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .) | |
(cd examples/video_annotation && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .) | |
pip install 'lxml<5.0.0' # for bbox_detection/labelme2voc.py | |
(cd examples/bbox_detection && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .) | |
pip install cython && pip install pycocotools # for instance_segmentation/labelme2coco.py | |
(cd examples/instance_segmentation && rm -rf data_dataset_coco && ./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt && git checkout -- .) | |
- name: Run pyinstaller | |
shell: bash -l {0} | |
if: matrix.PYTEST_QT_API == 'pyqt5' | |
run: | | |
# Build the standalone executable | |
pip install pyinstaller | |
pyinstaller labelme.spec | |
dist/labelme --version |