forked from BelfrySCAD/BOSL2
-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (112 loc) · 3.79 KB
/
main.yml
File metadata and controls
134 lines (112 loc) · 3.79 KB
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Checks
on:
pull_request:
push:
branches: [master]
jobs:
Regressions:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Required Libraries
run: sudo apt-get install libfuse2
- name: Install OpenSCAD
run: |
cd $GITHUB_WORKSPACE
wget -q https://github.com/openscad/openscad/releases/download/openscad-2021.01/OpenSCAD-2021.01-x86_64.AppImage
sudo mv OpenSCAD-2021.01*-x86_64.AppImage /usr/local/bin/openscad
sudo chmod +x /usr/local/bin/openscad
- name: Install openscad-test
run: pip install openscad-test
- name: Run Regression Tests
run: |
cd $GITHUB_WORKSPACE
./scripts/run_tests.sh
FuncCoverage:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check Function Test Coverage
run: |
cd $GITHUB_WORKSPACE
OUTPUT=$(python3 scripts/func_coverage.py)
echo "$OUTPUT"
# Extract coverage percentage
COVERAGE=$(echo "$OUTPUT" | grep "Total coverage:" | grep -oP '[0-9]+\.[0-9]+(?=%)')
echo "Coverage: ${COVERAGE}%"
# Fail if coverage dropped below 99%
python3 -c "
coverage = float('${COVERAGE}')
if coverage < 99.0:
print(f'::error::Function test coverage dropped to {coverage}% (minimum: 99%)')
exit(1)
else:
print(f'Coverage OK: {coverage}%')
"
CheckTutorials:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Clone Wiki
uses: actions/checkout@v4
with:
repository: BelfrySCAD/BOSL2.wiki
path: BOSL2.wiki
- name: Apt Update
run: sudo apt update
- name: Install Required Libraries
run: sudo apt-get install python3-pip python3-dev python3-setuptools python3-pil libfuse2
- name: Install OpenSCAD-DocsGen package.
run: sudo pip3 install openscad-docsgen imageio
- name: Install OpenSCAD
run: |
cd $GITHUB_WORKSPACE
wget -q https://github.com/openscad/openscad/releases/download/openscad-2021.01/OpenSCAD-2021.01-x86_64.AppImage
sudo mv OpenSCAD-2021.01*-x86_64.AppImage /usr/local/bin/openscad
sudo chmod +x /usr/local/bin/openscad
- name: Tabs Check
run: |
cd $GITHUB_WORKSPACE
echo "::add-matcher::.github/check_for_tabs.json"
./scripts/check_for_tabs.sh
- name: Checking Tutorials
run: |
cd $GITHUB_WORKSPACE
echo "::add-matcher::.github/openscad_docsgen.json"
export OPENSCADPATH=$(dirname $GITHUB_WORKSPACE)
openscad-mdimggen -T
CheckDocs:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Clone Wiki
uses: actions/checkout@v4
with:
repository: BelfrySCAD/BOSL2.wiki
path: BOSL2.wiki
- name: Apt Update
run: sudo apt update
- name: Install Required Libraries
run: sudo apt-get install python3-pip python3-dev python3-setuptools python3-pil libfuse2
- name: Install OpenSCAD-DocsGen package.
run: sudo pip3 install openscad-docsgen imageio
- name: Install OpenSCAD
run: |
cd $GITHUB_WORKSPACE
wget -q https://github.com/openscad/openscad/releases/download/openscad-2021.01/OpenSCAD-2021.01-x86_64.AppImage
sudo mv OpenSCAD-2021.01*-x86_64.AppImage /usr/local/bin/openscad
sudo chmod +x /usr/local/bin/openscad
- name: Checking Docs
run: |
cd $GITHUB_WORKSPACE
echo "::add-matcher::.github/openscad_docsgen.json"
export OPENSCADPATH=$(dirname $GITHUB_WORKSPACE)
openscad-docsgen -Tmf