Skip to content

Update release.yml template #842

Update release.yml template

Update release.yml template #842

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ['3.9']
PYTEST_QT_API: [pyqt5, pyside2]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
# - name: Install system dependencies
# shell: bash -l {0}
# run: |
# if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
# sudo apt-get install -y coreutils
# sudo apt-get install -y xvfb herbstluftwm
# elif [ "${{ matrix.os }}" = "macos-latest" ]; then
# brew install coreutils
# brew install --cask xquartz
# fi
- name: Set up Python
shell: bash -l {0}
run: |
conda install -q -y python=${{ matrix.python-version }}
which python
python --version
pip --version
- name: Install dependencies
shell: bash -l {0}
run: |
if [ "${{ matrix.PYTEST_QT_API }}" = "pyside2" ]; then
conda install -q -y pyside2 -c conda-forge
# should be installed via pip
# else
# conda install -q -y pyqt=5
fi
pip install -r requirements-dev.txt
- name: Install main
shell: bash -l {0}
run: |
pip install .
- name: Run ruff
shell: bash -l {0}
if: matrix.os != 'windows-latest'
run: |
ruff format --check
ruff check
- name: Test with pytest
shell: bash -l {0}
if: matrix.os == 'ubuntu-latest'
env:
PYTEST_QT_API: ${{ matrix.PYTEST_QT_API }}
MPLBACKEND: 'agg'
run: |
sudo apt-get update
sudo apt-get install -y xvfb libqt5widgets5
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
export DISPLAY=:99
pytest tests
- name: Run examples
shell: bash -l {0}
if: matrix.os != 'windows-latest'
env:
MPLBACKEND: agg
run: |
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<5.0.0' # 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
shell: bash -l {0}
if: matrix.PYTEST_QT_API == 'pyqt5'
run: |
# Build the standalone executable
pip install pyinstaller
pyinstaller labelme.spec
dist/labelme --version