Skip to content

Check examples

Check examples #2

Workflow file for this run

name: Check examples
on:
workflow_call:
workflow_dispatch:
env:
POETRY_VERSION: 1.2.2
PYTHON_VERSION: 3.9
jobs:
check_examples:
name: Check examples
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
id: setup-python
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Poetry
uses: Gr1N/setup-poetry@v8
with:
poetry-version: ${{ env.POETRY_VERSION }}
# Updating poetry.lock for all of the examples takes over 6 minutes, so it's worth caching.
- name: Cache poetry.lock
uses: actions/cache@v3
id: cache-poetry-lock
with:
path: 'examples/**/poetry.lock'
# Include the main project's poetry.lock in the hash to detect upstream dependency updates.
key: examples-poetry-lock-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('examples/**/pyproject.toml', 'poetry.lock') }}
- name: Lock examples
if: steps.cache-poetry-lock.outputs.cache-hit != 'true'
run: |
for example in examples/*/; do
echo "::group::$example"
pushd $example
poetry lock
popd
echo "::endgroup::"
done
- name: Cache virtualenvs
uses: actions/cache@v3
id: cache-venv
with:
path: 'examples/**/.venv'
key: examples-venv-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('examples/**/poetry.lock') }}
- name: Install examples
run: |
for example in examples/*/; do
echo "::group::$example"
pushd $example
poetry install -v
popd
echo "::endgroup::"
done
- name: Lint examples
run: |
for example in examples/*/; do
echo "::group::$example"
pushd $example
poetry run ni-python-styleguide lint
popd
echo "::endgroup::"
done
- name: Mypy static analysis (examples, Linux)
run: |
for example in examples/*/; do
echo "::group::$example"
pushd $example
poetry run mypy .
popd
echo "::endgroup::"
done
- name: Mypy static analysis (examples, Windows)
run: |
for example in examples/*/; do
echo "::group::$example"
pushd $example
poetry run mypy . --platform win32
popd
echo "::endgroup::"
done