提交 0bce275b 编写于 作者: K Kentaro Wada

Travis CI -> GitHub Actions

上级 7d17a19f
name: CI
on: [push]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, ubuntu-latest]
PYTEST_QT_API: [pyqt5, pyqt4v2, pyside2]
PYTHON_VERSION: ['2.7', '3.6']
exclude:
- os: macOS-latest
PYTEST_QT_API: pyqt4v2
- os: macOS-latest
PYTEST_QT_API: pyside2
- PYTHON_VERSION: '3.6'
PYTEST_QT_API: pyqt4v2
steps:
- uses: actions/checkout@v1
- name: Update submodules
run: |
git submodule update --init --recursive
- name: Install system dependencies
run: |
if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
sudo apt-get install -y coreutils
sudo apt-get install -y xvfb herbstluftwm
else
brew install coreutils
brew cask install xquartz
fi
- name: Set up Miniconda
run: |
if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
curl -L -o miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
else
curl -L -o miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
fi
bash miniconda.sh -b -p $HOME/miniconda
rm -f miniconda.sh
export PATH="$HOME/miniconda/bin:$PATH"
conda config --set always_yes yes --set changeps1 no
conda update -q conda
conda info -a
- name: Set up Python
env:
PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
run: |
export PATH="$HOME/miniconda/bin:$PATH"
conda install -y python=$PYTHON_VERSION
which python
python --version
pip --version
- name: Install dependencies
run: |
export PATH="$HOME/miniconda/bin:$PATH"
if [ "${{ matrix.PYTEST_QT_API }}" = "pyside2" ]; then
if [ "${{ matrix.PYTHON_VERSION }}" = "2.7" ]; then
conda install -y 'pyside2!=5.12.4' -c conda-forge
else
conda install -y pyside2 -c conda-forge
fi
elif [ "${{ matrix.PYTEST_QT_API }}" = "pyqt4v2" ]; then
conda install -y pyqt=4 -c conda-forge
else # pyqt5
conda install -y pyqt=5
fi
conda install -y help2man
pip install flake8 pytest pytest-qt
- name: Install main
run: |
export PATH="$HOME/miniconda/bin:$PATH"
pip install .
- name: Lint with flake8
run: |
export PATH="$HOME/miniconda/bin:$PATH"
flake8 .
- name: Test with pytest
env:
PYTEST_QT_API: ${{ matrix.PYTEST_QT_API }}
run: |
# open virtual display
if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
export DISPLAY=:99.0
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset
(herbstluftwm )&
else
(sudo Xvfb :99 -ac -screen 0 1024x768x8 )&
fi
# run test
export PATH="$HOME/miniconda/bin:$PATH"
MPLBACKEND='agg' pytest tests -m 'not gpu'
- name: Run examples
env:
MPLBACKEND: agg
run: |
export PATH="$HOME/miniconda/bin:$PATH"
labelme --help
labelme --version
(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 -- .)
- name: Run pyinstaller
run: |
if [ "${{ matrix.PYTEST_QT_API }}" = "pyqt5" -a "${{ matrix.PYTHON_VERSION }}" = "3.6" ]; then
export PATH="$HOME/miniconda/bin:$PATH"
# # 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
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册