-
Notifications
You must be signed in to change notification settings - Fork 91
116 lines (101 loc) · 4.3 KB
/
hardware-ci.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
name: pslab-hardware
on:
push:
branches: [ pslab-v6 ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Download project files
uses: actions/checkout@v2
- name: Install KiCAD
run: |
sudo add-apt-repository --yes ppa:kicad/kicad-5.1-releases
sudo apt update
sudo apt install --install-recommends kicad -y -qq
- name: Copy configuration files
run: |
cd ~/.config
mkdir kicad
cd kicad
wget https://gist.githubusercontent.com/CloudyPadmal/dad9975e02bf39d6a3d2851ca53981cc/raw/0f342a3bba82b1af9789be689e5c00b4ad914015/kicad_common
- name: Install dependencies
run: |
pip install --no-compile kibot
wget https://github.com/INTI-CMNB/InteractiveHtmlBom/releases/download/v2.3.4-2/interactivehtmlbom.inti-cmnb_2.3.4-2_all.deb
sudo dpkg -i interactivehtmlbom.inti-cmnb_2.3.4-2_all.deb
pip install pcb-tools image
sudo apt install xvfb recordmydesktop xdotool libmagickwand-dev librsvg2-bin imagemagick poppler-utils
- name: Run build
run: |
cd schematics
kibot -v
- name: Publish PDF schematic
uses: actions/upload-artifact@v2
with:
name: schematic-pdf
path: docs/schematics/PSLab.pdf
- name: Publish interactive bill of materials
uses: actions/upload-artifact@v2
with:
name: interactive-bom
path: docs/components/InteractiveBoM.html
- name: Publish bill of materials
uses: actions/upload-artifact@v2
with:
name: bill-of-materials
path: docs/components/BillOfMaterials.csv
- name: Publish gerbers
uses: actions/upload-artifact@v2
with:
name: gerbers
path: output/Gerber/
- name: Publish centroids
uses: actions/upload-artifact@v2
with:
name: pick-and-place
path: docs/position_files/PositionFile.csv
- name: Electric Rule Check
uses: actions/upload-artifact@v2
with:
name: electric-rule-check
path: schematics/PSLab-erc.txt
- name: Design Rule Check
uses: actions/upload-artifact@v2
with:
name: design-rule-check
path: schematics/PSLab-drc.txt
- name: Setup board diff images
run: |
git config --global user.email "[email protected]"
git config --global user.name "github-actions"
python3 scripts/pslab_gerber_generator.py
git clone --quiet --branch=diff-img https://$GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY diff-img > /dev/null
cd diff-img
convert -colorspace gray front-layer.png old-front.png
convert -colorspace gray bottom-layer.png old-bottom.png
convert -colorspace gray ground-layer.png old-ground.png
convert -colorspace gray power-layer.png old-power.png
mv ../output/Images/* .
convert -colorspace gray front-layer.png new-front.png
convert -colorspace gray bottom-layer.png new-bottom.png
convert -colorspace gray ground-layer.png new-ground.png
convert -colorspace gray power-layer.png new-power.png
composite -stereo 0 old-front.png new-front.png diff-front.png
composite -stereo 0 old-bottom.png new-bottom.png diff-bottom.png
composite -stereo 0 old-ground.png new-ground.png diff-ground.png
composite -stereo 0 old-power.png new-power.png diff-power.png
mv PSLab.pdf old-PSLab.pdf
cp ../docs/schematics/PSLab.pdf .
pdftoppm old-PSLab.pdf old-PSLab -png -rx 300 -ry 300
pdftoppm PSLab.pdf new-PSLab -png -rx 300 -ry 300
convert -colorspace gray old-PSLab-1.png old-PSLab.png
convert -colorspace gray new-PSLab-1.png new-PSLab.png
composite -stereo 0 old-PSLab.png new-PSLab.png diff-schematic.png
rm -rf old-* new-*
git checkout --orphan temporary
git add .
git commit -m "chore: updating board diff images"
git branch -D diff-img
git branch -m diff-img
git push origin diff-img -f --quiet > /dev/null