Skip to content

Commit 3cf7fb6

Browse files
authored
Add Cleanness CI #2 (#619)
1 parent 2d1de77 commit 3cf7fb6

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

.github/workflows/cleanness.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Cleanness
2+
3+
on: [push, pull_request, workflow_dispatch]
4+
5+
jobs:
6+
cleanness:
7+
name: Code Cleanness Test
8+
runs-on: "ubuntu-latest"
9+
env:
10+
pr_everything: 0
11+
master_everything: 0
12+
steps:
13+
- name: Clone - PR
14+
uses: actions/checkout@v3
15+
with:
16+
path: pr
17+
- name: Clone - Master
18+
uses: actions/checkout@v3
19+
with:
20+
repository: MFlowCode/MFC
21+
ref: master
22+
path: master
23+
24+
- name: Setup Ubuntu
25+
run: |
26+
sudo apt update -y
27+
sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
28+
29+
30+
- name: Build
31+
run: |
32+
(cd pr && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../pr.txt)
33+
(cd master && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../master.txt)
34+
sed -i '/\/pr\//d' pr.txt
35+
sed -i '/\/master\//d' master.txt
36+
37+
- name: Unused Variables Diff
38+
run: |
39+
grep -F 'Wunused-variable' master.txt -B 4 > mUnused.txt
40+
grep -F 'Wunused-variable' pr.txt -B 4 > prUnused.txt
41+
diff prUnused.txt mUnused.txt || true
42+
43+
- name: Unused Dummy Arguments Diff
44+
run: |
45+
grep -F 'Wunused-dummy-argument' pr.txt -B 4 > prDummy.txt
46+
grep -F 'Wunused-dummy-argument' master.txt -B 4 > mDummy.txt
47+
diff prDummy.txt mDummy.txt || true
48+
49+
- name: Unused Value Diff
50+
run: |
51+
grep -F 'Wunused-value' pr.txt -B 4 > prUnused_val.txt
52+
grep -F 'Wunused-value' master.txt -B 4 > mUnused_val.txt
53+
diff prUnused_val.txt mUnused_val.txt || true
54+
55+
- name: Maybe Uninitialized Variables Diff
56+
run: |
57+
grep -F 'Wmaybe-uninitialized' pr.txt -B 4 > prMaybe.txt
58+
grep -F 'Wmaybe-uninitialized' master.txt -B 4 > mMaybe.txt
59+
diff prMaybe.txt mMaybe.txt || true
60+
61+
62+
- name: Everything Diff
63+
run: |
64+
grep '\-W' pr.txt -B 4 > pr_every.txt
65+
grep '\-W' master.txt -B 4 > m_every.txt
66+
diff pr_every.txt m_every.txt || true
67+
68+
- name: List of Warnings
69+
run: |
70+
cat pr_every.txt
71+
72+
73+
- name: Summary
74+
run: |
75+
pr_variable=$(grep -c -F 'Wunused-variable' pr.txt -B 4)
76+
pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt -B 4)
77+
pr_value=$(grep -c -F 'Wunused-value' pr.txt -B 4)
78+
pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt -B 4)
79+
pr_everything=$(grep -c '\-W' pr.txt -B 4)
80+
81+
master_variable=$(grep -c -F 'Wunused-variable' master.txt -B 4)
82+
master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt -B 4)
83+
master_value=$(grep -c -F 'Wunused-value' master.txt -B 4)
84+
master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt -B 4)
85+
master_everything=$(grep -c '\-W' master.txt -B 4)
86+
87+
echo "pr_everything=$pr_everything" >> $GITHUB_ENV
88+
echo "master_everything=$master_everything" >> $GITHUB_ENV
89+
90+
echo "Difference is how many warnings were added or removed from master to pr, negative numbers are better since you are removing warnings"
91+
echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
92+
echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
93+
echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
94+
echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
95+
echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
96+
97+
98+
- name: Check Differences
99+
if: env.pr_everything > env.master_everything
100+
run: |
101+
echo "Difference between warning count in PR is greater than in master."
102+
exit 1
103+
104+

0 commit comments

Comments
 (0)