|
|
@@ -0,0 +1,140 @@
|
|
|
+language: generic
|
|
|
+
|
|
|
+cache:
|
|
|
+ - pip
|
|
|
+
|
|
|
+sudo: required
|
|
|
+
|
|
|
+dist: trusty
|
|
|
+
|
|
|
+branches:
|
|
|
+ only:
|
|
|
+ - master
|
|
|
+ - /v\d+\.\d+.\d+/
|
|
|
+
|
|
|
+notifications:
|
|
|
+ email: false
|
|
|
+
|
|
|
+env:
|
|
|
+ global:
|
|
|
+ # used by ci-helpers
|
|
|
+ - SETUP_XVFB=true
|
|
|
+ - PIP_DEPENDENCIES='hacking pytest pytest-qt'
|
|
|
+
|
|
|
+ - MPLBACKEND=TkAgg # for osx
|
|
|
+matrix:
|
|
|
+ include:
|
|
|
+ - os: osx
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyqt5
|
|
|
+ - PYQT_PACKAGE='pyqt=5'
|
|
|
+ - PYTHON_VERSION=3.6
|
|
|
+ - RUN_PYINSTALLER=true
|
|
|
+ - os: linux
|
|
|
+ dist: trusty
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyqt4v2
|
|
|
+ - PYQT_PACKAGE='pyqt=4'
|
|
|
+ - PYTHON_VERSION=2.7
|
|
|
+ - os: linux
|
|
|
+ dist: trusty
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyside2
|
|
|
+ - CONDA_CHANNELS='conda-forge'
|
|
|
+ - PYQT_PACKAGE='pyside2!=5.12.4'
|
|
|
+ - PYTHON_VERSION=2.7
|
|
|
+ - os: linux
|
|
|
+ dist: trusty
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyside2
|
|
|
+ - CONDA_CHANNELS='conda-forge'
|
|
|
+ - PYQT_PACKAGE='pyside2'
|
|
|
+ - PYTHON_VERSION=3.6
|
|
|
+ - os: linux
|
|
|
+ dist: trusty
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyqt5
|
|
|
+ - PYQT_PACKAGE='pyqt=5'
|
|
|
+ - PYTHON_VERSION=2.7
|
|
|
+ - os: linux
|
|
|
+ dist: trusty
|
|
|
+ env:
|
|
|
+ - PYTEST_QT_API=pyqt5
|
|
|
+ - PYQT_PACKAGE='pyqt=5'
|
|
|
+ - PYTHON_VERSION=3.6
|
|
|
+ - RUN_PYINSTALLER=true
|
|
|
+
|
|
|
+install:
|
|
|
+ # Setup X
|
|
|
+ - |
|
|
|
+ if [ $TRAVIS_OS_NAME = "linux" ]; then
|
|
|
+ sudo apt-get update
|
|
|
+ # Xvfb / window manager
|
|
|
+ sudo apt-get install -y xvfb herbstluftwm
|
|
|
+ elif [ $TRAVIS_OS_NAME = "osx" ]; then
|
|
|
+ brew cask install xquartz
|
|
|
+ fi
|
|
|
+
|
|
|
+ # Setup miniconda
|
|
|
+ - git clone --depth 1 git://github.com/astropy/ci-helpers.git
|
|
|
+ - CONDA_DEPENDENCIES=$PYQT_PACKAGE source ci-helpers/travis/setup_conda.sh
|
|
|
+ - source activate test && export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
|
|
|
+ - pip install .
|
|
|
+ - rm -rf ci-helpers miniconda.sh
|
|
|
+
|
|
|
+before_script:
|
|
|
+ - if [ $TRAVIS_OS_NAME = "linux" ]; then (herbstluftwm )& fi
|
|
|
+ - if [ $TRAVIS_OS_NAME = "osx" ]; then (sudo Xvfb :99 -ac -screen 0 1024x768x8 )& fi
|
|
|
+ - sleep 1
|
|
|
+
|
|
|
+script:
|
|
|
+ # Run flake8
|
|
|
+ - flake8 examples labelme setup.py tests
|
|
|
+
|
|
|
+ # Run help2man
|
|
|
+ - conda install -y help2man
|
|
|
+
|
|
|
+ # Run pytest
|
|
|
+ - pytest -v tests
|
|
|
+
|
|
|
+ - labelme --help
|
|
|
+ - labelme --version
|
|
|
+
|
|
|
+ # Run examples
|
|
|
+ - (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 -- .)
|
|
|
+
|
|
|
+ # Run pyinstaller
|
|
|
+ - |
|
|
|
+ if [ "$RUN_PYINSTALLER" = "true" ]; then
|
|
|
+ # Cleanup
|
|
|
+ pip uninstall -y $PIP_DEPENDENCIES
|
|
|
+
|
|
|
+ # https://github.com/wkentaro/labelme/issues/183
|
|
|
+ if [ $TRAVIS_OS_NAME = "osx" ]; then
|
|
|
+ pip uninstall -y Pillow
|
|
|
+ conda install -y Pillow
|
|
|
+ fi
|
|
|
+
|
|
|
+ # Build the standalone executable
|
|
|
+ pip install 'pyinstaller!=3.4' # 3.4 raises error
|
|
|
+
|
|
|
+ # numpy 1.17 raises error
|
|
|
+ # See https://github.com/wkentaro/labelme/issues/465
|
|
|
+ pip install 'numpy<1.17'
|
|
|
+
|
|
|
+ pyinstaller labelme.spec
|
|
|
+ dist/labelme --version
|
|
|
+ fi
|
|
|
+
|
|
|
+after_script:
|
|
|
+ - true # noop
|