Clean up tool manu: remove ones less common, make diff in action and others #760
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@v2 | |
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: Lint with flake8 | |
shell: bash -l {0} | |
if: matrix.os != 'windows-latest' | |
run: | | |
flake8 labelme/ | |
- name: Black | |
shell: bash -l {0} | |
if: matrix.os != 'windows-latest' | |
run: | | |
black --line-length 79 --check --diff labelme/ | |
- name: Test with pytest | |
shell: bash -l {0} | |
if: matrix.os != 'windows-latest' && !(matrix.os == 'macos-latest' && matrix.PYTEST_QT_API == 'pyside2') | |
env: | |
PYTEST_QT_API: ${{ matrix.PYTEST_QT_API }} | |
MPLBACKEND: 'agg' | |
run: | | |
# # open virtual display | |
# if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then | |
# export DISPLAY=:99.0 | |
# /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset | |
# (herbstluftwm )& | |
# else | |
# (sudo Xvfb :99 -ac -screen 0 1024x768x8 )& | |
# fi | |
pytest -vs -m 'not gui' 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 # 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 |