Files
netbox-repo/.github/workflows/validation.yml
Daniel W. Anner 745591e2e0 Update validation.yml
Fix source issue
2023-07-19 13:51:38 -04:00

90 lines
3.2 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: ${{ env.pythonLocation }}
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
if: steps.cache-venv.outputs.cache-hit != 'true'
- 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: ${{ env.pythonLocation }}
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
if: steps.cache-venv.outputs.cache-hit != 'true'
- 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-pytest
with:
path: ${{ env.pythonLocation }}
key: ${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-pytest-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.pythonLocation }}-pytest-
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install pytest-github-actions-annotate-failures
if: steps.cache-venv-pytest.outputs.cache-hit != 'true'
- name: Run Test Cases
id: pytest
run: pytest --tb=short -v