.travis.yml 3.9 KB
Newer Older
L
LaraStuStu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 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