.travis.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. language: generic
  2. cache:
  3. - pip
  4. sudo: required
  5. dist: trusty
  6. branches:
  7. only:
  8. - master
  9. - /v\d+\.\d+.\d+/
  10. notifications:
  11. email: false
  12. env:
  13. global:
  14. # used by ci-helpers
  15. - SETUP_XVFB=true
  16. - PIP_DEPENDENCIES='hacking pytest pytest-qt'
  17. - MPLBACKEND=TkAgg # for osx
  18. matrix:
  19. include:
  20. - os: osx
  21. env:
  22. - PYTEST_QT_API=pyqt5
  23. - PYQT_PACKAGE='pyqt=5'
  24. - PYTHON_VERSION=3.6
  25. - RUN_PYINSTALLER=true
  26. - os: linux
  27. dist: trusty
  28. env:
  29. - PYTEST_QT_API=pyqt4v2
  30. - PYQT_PACKAGE='pyqt=4'
  31. - PYTHON_VERSION=2.7
  32. - os: linux
  33. dist: trusty
  34. env:
  35. - PYTEST_QT_API=pyside2
  36. - CONDA_CHANNELS='conda-forge'
  37. - PYQT_PACKAGE='pyside2'
  38. - PYTHON_VERSION=2.7
  39. - os: linux
  40. dist: trusty
  41. env:
  42. - PYTEST_QT_API=pyside2
  43. - CONDA_CHANNELS='conda-forge'
  44. - PYQT_PACKAGE='pyside2'
  45. - PYTHON_VERSION=3.6
  46. - os: linux
  47. dist: trusty
  48. env:
  49. - PYTEST_QT_API=pyqt5
  50. - PYQT_PACKAGE='pyqt=5'
  51. - PYTHON_VERSION=2.7
  52. - os: linux
  53. dist: trusty
  54. env:
  55. - PYTEST_QT_API=pyqt5
  56. - PYQT_PACKAGE='pyqt=5'
  57. - PYTHON_VERSION=3.6
  58. - RUN_PYINSTALLER=true
  59. install:
  60. # Setup X
  61. - |
  62. if [ $TRAVIS_OS_NAME = "linux" ]; then
  63. sudo apt-get update
  64. # Xvfb / window manager
  65. sudo apt-get install -y xvfb herbstluftwm
  66. elif [ $TRAVIS_OS_NAME = "osx" ]; then
  67. brew cask install xquartz
  68. fi
  69. # Setup miniconda
  70. - git clone --depth 1 git://github.com/astropy/ci-helpers.git
  71. - CONDA_DEPENDENCIES=$PYQT_PACKAGE source ci-helpers/travis/setup_conda.sh
  72. - source activate test && export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
  73. - pip install .
  74. - rm -rf ci-helpers miniconda.sh
  75. before_script:
  76. - if [ $TRAVIS_OS_NAME = "linux" ]; then (herbstluftwm )& fi
  77. - if [ $TRAVIS_OS_NAME = "osx" ]; then (sudo Xvfb :99 -ac -screen 0 1024x768x8 )& fi
  78. - sleep 1
  79. script:
  80. # Run flake8
  81. - flake8 examples labelme setup.py tests
  82. # Run pytest
  83. - pytest -v tests
  84. # Test labelme executable
  85. - labelme --help
  86. - labelme --version
  87. - (cd examples/primitives && labelme_json_to_dataset primitives.json && rm -rf primitives_json)
  88. - (cd examples/tutorial && rm -rf apc2016_obj3_json && labelme_json_to_dataset apc2016_obj3.json && python load_label_png.py && git checkout -- .)
  89. - (cd examples/bbox_detection && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)
  90. - (cd examples/semantic_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)
  91. - (cd examples/instance_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)
  92. - (cd examples/video_annotation && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)
  93. # Run pyinstaller
  94. - |
  95. if [ "$RUN_PYINSTALLER" = "true" ]; then
  96. # Cleanup
  97. pip uninstall -y $PIP_DEPENDENCIES
  98. # https://github.com/wkentaro/labelme/issues/183
  99. if [ $TRAVIS_OS_NAME = "osx" ]; then
  100. pip uninstall -y Pillow
  101. conda install -y Pillow
  102. fi
  103. # Build the standalone executable
  104. pip install pyinstaller
  105. pyinstaller labelme.spec
  106. dist/labelme --version
  107. # Create ZIP files for release
  108. cd dist
  109. zip labelme-$(uname).zip labelme
  110. if [ "$TRAVIS_OS_NAME" = "osx" ]; then
  111. zip -r labelme.app-$(uname).zip labelme.app
  112. fi
  113. cd -
  114. fi
  115. before_deploy:
  116. - git config --local user.name 'Kentaro Wada'
  117. - git config --local user.email 'www.kentaro.wada@gmail.com'
  118. deploy:
  119. provider: releases
  120. api_key:
  121. secure: S42xawauDsZqLpdRy5d3nAo5Enh6tcJR6IAKwRp4T5+P/ZgXmoSJ81HQrmiUXLJTdvMMjRRr2H/2GuX+WoNHiFLlGY43bWu8GkK1qRslJxC+Fh8+VdIrhVcOFf7xhvhuV26KZxu4uh2lp95p10Crpj4Y3GkxguHjbF+F9c0vEVlEmmgyVsj6c2tFzIXVa4LPuFFDf9yWPl5Sp1n60Y8fDaEOoVbK63vh8pngFE8t2anQl5oNOcLf29t8IciPyo70p1p0UdKZ5a6YsPgu+/x2rPG1uroUksD9s9kY33vL/2D77frGv1eZFNk7TH31LV1TlG3JWklC8tqVG7Qklm4+Hnk+OEo/1uyWeDLJX8IOwy25hbg5VMFkQTZYWhCYg3IihdHbRJL4FAyTasYbEUrkmxniRnLCD8EL6gFHV1zZuv7ACCcdJHZz70sp/eiKZ5TwGRM+qnSNjd9Y4IyRv25vRsZo/8EPKShcKD1ik5OQNc2hw3uM6KLnV6lRCmZ1WSVz08bkLn5X+lzAyw1Bop2ZNdlS9N8qSfRMn2f30ORCVmNP/EKFFIDbt4wkd1XkAG/bF4LFD9VeSTp6RXcie/C/SfwBjgn0hqhdQ/n6Ptcba77OXWnKAc35GkWPs3+axBrYMZno68ne8DlcWIdT2RAeuMVzQMHT52ddvx3oQ6cUXs4=
  122. file_glob: true
  123. file: dist/*.zip
  124. skip_cleanup: true
  125. on:
  126. tags: true
  127. repo: wkentaro/labelme
  128. after_script:
  129. - true # noop