Import functions at Start of File #1604
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Continuous integration using conda installation | |
name: CI | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
paths: | |
- "sleap/**" | |
- "tests/**" | |
- ".github/workflows/ci.yml" | |
- "environment_no_cuda.yml" | |
- "requirements.txt" | |
- "dev_requirements.txt" | |
push: | |
branches: | |
- master | |
- develop | |
paths: | |
- "sleap/**" | |
- "tests/**" | |
- ".github/workflows/ci.yml" | |
- "environment_no_cuda.yml" | |
- "requirements.txt" | |
- "dev_requirements.txt" | |
jobs: | |
type_check: | |
name: Type Check | |
runs-on: "ubuntu-22.04" | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install Dependencies | |
run: | | |
pip install mypy | |
- name: Run MyPy | |
# TODO: remove this once all MyPy errors get fixed | |
continue-on-error: true | |
run: | | |
mypy --follow-imports=skip --ignore-missing-imports sleap tests | |
lint: | |
name: Lint | |
runs-on: "ubuntu-22.04" | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install Dependencies | |
run: | | |
pip install click==8.0.4 | |
pip install black==21.6b0 | |
- name: Run Black | |
run: | | |
black --check sleap tests | |
tests: | |
name: Tests (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-22.04", "windows-2022", "macos-latest"] | |
include: | |
# Default values | |
- env_file: environment_no_cuda.yml | |
- test_args: --durations=-1 tests/ | |
# Mac specific values | |
- os: macos-latest | |
env_file: environment_mac.yml | |
# Ubuntu specific values | |
- os: ubuntu-22.04 | |
test_args: --cov=sleap --cov-report=xml --durations=-1 tests/ | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Micromamba | |
# https://github.com/mamba-org/setup-micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
micromamba-version: '1.4.6-0' | |
environment-file: ${{ matrix.env_file }} | |
environment-name: sleap_ci | |
init-shell: >- | |
bash | |
powershell | |
post-cleanup: all | |
# Print environment info | |
- name: Print environment info | |
shell: bash -l {0} | |
run: | | |
which python | |
micromamba info | |
micromamba list | |
pip freeze | |
# Test environment | |
- name: Test with pytest | |
shell: bash -l {0} | |
run: | | |
pytest ${{ matrix.test_args }} | |
# Upload coverage | |
- name: Upload coverage | |
uses: codecov/codecov-action@v1 | |
if: matrix.os == 'ubuntu-22.04' | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
verbose: false |