-
Notifications
You must be signed in to change notification settings - Fork 2
117 lines (116 loc) · 4.64 KB
/
validation.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
---
name: Validate definitions
on: # yamllint disable-line rule:truthy
pull_request:
branches:
- master
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
id: setup_python
with:
python-version: '3.9'
- name: cache virtualenv
uses: actions/cache@v4
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@v4
- name: Setup Python
uses: actions/setup-python@v5
id: setup_python
with:
python-version: '3.9'
- name: cache virtualenv
uses: actions/cache@v4
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]
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
id: setup_python
with:
python-version: '3.9'
- name: cache virtualenv
uses: actions/cache@v4
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
- name: Check for pickle file change
id: pickle-change
uses: tj-actions/changed-files@v45
with:
files: 'tests/known-slugs.pickle'
- name: Add PR Comment if pickle file is modified
uses: mshick/add-pr-comment@v2
if: steps.pickle-change.outputs.any_changed == 'true'
with:
message: |
Hello, it appears that you have modified the `tests/known-slugs.pickle` file. This file is automatically generated via a GitHub Action, which contains all currently available slugs. This file should **never** be commited by a contributor in a PR.
In order to fix this, you will need to remove the modification on the pickle file. There are a handful of ways to do so but often it is easiest to revert the commit and force push it again without the pickle file included. If you need assistance you are welcome to ping a maintainer via this PR, or via our NetDev Slack.
- name: Add Labels if pickle file is modified
uses: actions-ecosystem/action-add-labels@v1
if: steps.pickle-change.outputs.any_changed == 'true'
with:
labels: |
status: revisions needed
status: pickle-issue
- uses: actions-ecosystem/action-remove-labels@v1
if: steps.pickle-change.outputs.any_changed != 'true'
with:
labels: |
status: pickle-issue