111 lines
3.8 KiB
YAML
111 lines
3.8 KiB
YAML
---
|
|
name: Validate definitions
|
|
on: # yamllint disable-line rule:truthy
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
id: setup_python
|
|
with:
|
|
python-version: '3.8'
|
|
- name: cache virtualenv
|
|
uses: actions/cache@v3
|
|
id: cache-venv
|
|
with:
|
|
path: ./.venv/
|
|
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-${{ hashFiles('requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
python -m venv ./.venv
|
|
source ./.venv/bin/activate
|
|
python -m pip install -r requirements.txt
|
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
|
- name: Install repo project # We do this since the install deps step can be skipped
|
|
shell: bash
|
|
run: |
|
|
source ./.venv/bin/activate
|
|
#python -m pip install -U -e ./python
|
|
- name: Lint YAML files
|
|
run: |
|
|
yamllint --format github --strict \
|
|
device-types/ module-types/
|
|
format:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
id: setup_python
|
|
with:
|
|
python-version: '3.8'
|
|
- name: cache virtualenv
|
|
uses: actions/cache@v3
|
|
id: cache-venv
|
|
with:
|
|
path: ./.venv/
|
|
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-${{ hashFiles('requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
python -m venv ./.venv
|
|
source ./.venv/bin/activate
|
|
python -m pip install -r requirements.txt
|
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
|
- name: Install repo project # We do this since the install deps step can be skipped
|
|
shell: bash
|
|
run: |
|
|
source ./.venv/bin/activate
|
|
#python -m pip install -U -e ./python
|
|
- name: Format YAML files (hooks)
|
|
run: |
|
|
pre-commit run --config .pre-commit-hooks-config.yaml --all-files
|
|
- name: Format YAML files (yamlfmt)
|
|
run: |
|
|
pre-commit run --config .pre-commit-yamlfmt-config.yaml --all-files
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, format]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
id: setup_python
|
|
with:
|
|
python-version: '3.8'
|
|
- name: cache virtualenv
|
|
uses: actions/cache@v3
|
|
id: cache-venv
|
|
with:
|
|
path: ./.venv/
|
|
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-${{ hashFiles('requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-venv-
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
python -m venv ./.venv
|
|
source ./.venv/bin/activate
|
|
python -m pip install -r requirements.txt
|
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
|
- name: Install repo project # We do this since the install deps step can be skipped
|
|
shell: bash
|
|
run: |
|
|
source ./.venv/bin/activate
|
|
#python -m pip install -U -e ./python
|
|
- name: Install pytest plugin to annotate failures in GitHub
|
|
run: pip install pytest-github-actions-annotate-failures
|
|
- name: Run Test Cases
|
|
id: pytest
|
|
run: pytest --tb=short -v
|