-
Notifications
You must be signed in to change notification settings - Fork 5
54 lines (47 loc) · 1.73 KB
/
kicad-klc-check.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
name: "KLC Compliance Check"
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
# and if relevant files have changed
push:
branches: ["main"]
paths:
- "SimPanel.kicad_sym"
- "Kav_Simulations.kicad_sym"
- "SimPanel.pretty/*.kicad_mod"
- "Kav_Simulations.pretty/*.kicad_mod"
pull_request:
branches: ["main"]
paths:
- "SimPanel.kicad_sym"
- "Kav_Simulations.kicad_sym"
- "SimPanel.pretty/*.kicad_mod"
- "Kav_Simulations.pretty/*.kicad_mod"
jobs:
KLC_ComplianceCheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/[email protected]
with:
python-version: "3.10.11"
# We use this to limit KLC checking to only changed files
- id: footprint_files
name: Get Changed Files
uses: masesgroup/retrieve-changed-files@v2
with:
format: "json"
# We must check all symbols for compliance, since KiCad stores each library in a single file
- name: KLC Symbol Check
run: |
python ./library-utils/klc-check/check_symbol.py ./SimPanel.kicad_sym -vv
python ./library-utils/klc-check/check_symbol.py ./Kav_Simulations.kicad_sym -vv
# We only check footprints where the underlying file has changed
- name: KLC Footprint Check
run: |
readarray -t changed_files <<<"$(jq -r '.[]' <<<'${{ steps.footprint_files.outputs.added_modified }}')"
for changed_file in ${changed_files[@]}; do
if [[ ${changed_file} == *.kicad_mod ]]; then
python ./library-utils/klc-check/check_footprint.py ./${changed_file} -vv
fi
done