-
Notifications
You must be signed in to change notification settings - Fork 91
120 lines (105 loc) · 4.26 KB
/
pullrequest-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
117
118
119
120
name: pull-request-builds
on:
pull_request:
branches: [ pslab-v6 ]
paths:
- '**.sch'
- '**.kicad_pcb'
- '**.kicad_mod'
- '**.lib'
- '**.pro'
jobs:
build:
runs-on: ubuntu-latest
environment: PSLAB
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 cloudinary
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: |
python3 scripts/pslab_gerber_generator.py
git clone --quiet --branch=diff-img https://$GITHUB_ACTOR:${{ secrets.PSLAB_KEY }}@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-*
- name: Upload board diff images
uses: actions/upload-artifact@v2
with:
name: board-diff-images
path: diff-img/diff-*.png