diff --git a/DataAnnotation/labelme/.travis.yml b/DataAnnotation/labelme/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..799d0b97ea65096ac5af16a1c0891029cefbbf25 --- /dev/null +++ b/DataAnnotation/labelme/.travis.yml @@ -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