Browse Source

Create .travis.yml

LaraStuStu 5 years ago
parent
commit
367aece63a
1 changed files with 140 additions and 0 deletions
  1. 140 0
      DataAnnotation/labelme/.travis.yml

+ 140 - 0
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