@@ -3,103 +3,125 @@ name: Cleanliness
33on : [push, pull_request, workflow_dispatch]
44
55jobs :
6- cleanliness :
7- name : Code Cleanliness 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- - name : Build
30- run : |
31- (cd pr && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../pr.txt)
32- (cd master && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../master.txt)
33- sed -i '/\/pr\//d' pr.txt
34- sed -i '/\/master\//d' master.txt
35-
36- - name : Unused Variables Diff
37- run : |
38- grep -F 'Wunused-variable' master.txt > mUnused.txt
39- grep -F 'Wunused-variable' pr.txt > prUnused.txt
40- diff prUnused.txt mUnused.txt || true
41-
42- - name : Unused Dummy Arguments Diff
43- run : |
44- grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
45- grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
46- diff prDummy.txt mDummy.txt || true
47-
48- - name : Unused Value Diff
49- run : |
50- grep -F 'Wunused-value' pr.txt > prUnused_val.txt
51- grep -F 'Wunused-value' master.txt > mUnused_val.txt
52- diff prUnused_val.txt mUnused_val.txt || true
53-
54- - name : Maybe Uninitialized Variables Diff
55- run : |
56- grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
57- grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
58- diff prMaybe.txt mMaybe.txt || true
59-
60-
61- - name : Everything Diff
62- run : |
63- grep '\-W' pr.txt > pr_every.txt
64- grep '\-W' master.txt > m_every.txt
65- diff pr_every.txt m_every.txt || true
66-
67- - name : List of Warnings
68- run : |
69- cat pr_every.txt
70-
71-
72- - name : Summary
73- run : |
74- pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
75- pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
76- pr_value=$(grep -c -F 'Wunused-value' pr.txt)
77- pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt)
78- pr_everything=$(grep -c '\-W' pr.txt)
79-
80- master_variable=$(grep -c -F 'Wunused-variable' master.txt)
81- master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt)
82- master_value=$(grep -c -F 'Wunused-value' master.txt)
83- master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt)
84- master_everything=$(grep -c '\-W' master.txt )
85-
86- echo "pr_everything=$pr_everything" >> $GITHUB_ENV
87- echo "master_everything=$master_everything" >> $GITHUB_ENV
88-
89- echo "Difference is how many warnings were added or removed from master to PR."
90- echo "Negative numbers are better since you are removing warnings."
91- echo " "
92- echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
93- echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
94- echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
95- echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
96- echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
97-
98-
99- - name : Check Differences
100- if : env.pr_everything > env.master_everything
101- run : |
102- echo "Difference between warning count in PR is greater than in master."
103- exit 1
6+ file-changes :
7+ name : Detect File Changes
8+ runs-on : ' ubuntu-latest'
9+ outputs :
10+ checkall : ${{ steps.changes.outputs.checkall }}
11+ steps :
12+ - name : Clone
13+ uses : actions/checkout@v4
14+
15+ - name : Detect Changes
16+ uses : dorny/paths-filter@v3
17+ id : changes
18+ with :
19+ filters : " .github/file-filter.yml"
20+
21+ cleanliness :
22+ name : Code Cleanliness Check
23+ if : needs.file-changes.outputs.checkall == 'true'
24+ needs : file-changes
25+ runs-on : " ubuntu-latest"
26+ env :
27+ pr_everything : 0
28+ master_everything : 0
29+ steps :
30+ - name : Clone - PR
31+ uses : actions/checkout@v4
32+ with :
33+ path : pr
34+ - name : Clone - Master
35+ uses : actions/checkout@v4
36+ with :
37+ repository : MFlowCode/MFC
38+ ref : master
39+ path : master
40+
41+ - name : Setup Ubuntu
42+ run : |
43+ sudo apt update -y
44+ sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
45+
46+ - name : Build
47+ run : |
48+ (cd pr && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../pr.txt)
49+ (cd master && /bin/bash mfc.sh build -j $(nproc) --debug 2> ../master.txt)
50+ sed -i '/\/pr\//d' pr.txt
51+ sed -i '/\/master\//d' master.txt
52+
53+ - name : Unused Variables Diff
54+ continue-on-error : true
55+ run : |
56+ grep -F 'Wunused-variable' master.txt > mUnused.txt
57+ grep -F 'Wunused-variable' pr.txt > prUnused.txt
58+ diff prUnused.txt mUnused.txt
59+
60+ - name : Unused Dummy Arguments Diff
61+ continue-on-error : true
62+ run : |
63+ grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
64+ grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
65+ diff prDummy.txt mDummy.txt
66+
67+ - name : Unused Value Diff
68+ continue-on-error : true
69+ run : |
70+ grep -F 'Wunused-value' pr.txt > prUnused_val.txt
71+ grep -F 'Wunused-value' master.txt > mUnused_val.txt
72+ diff prUnused_val.txt mUnused_val.txt
73+
74+ - name : Maybe Uninitialized Variables Diff
75+ continue-on-error : true
76+ run : |
77+ grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
78+ grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
79+ diff prMaybe.txt mMaybe.txt
80+
81+
82+ - name : Everything Diff
83+ continue-on-error : true
84+ run : |
85+ grep '\-W' pr.txt > pr_every.txt
86+ grep '\-W' master.txt > m_every.txt
87+ diff pr_every.txt m_every.txt
88+
89+ - name : List of Warnings
90+ run : |
91+ cat pr_every.txt
92+
93+
94+ - name : Summary
95+ continue-on-error : true
96+ run : |
97+ pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
98+ pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
99+ pr_value=$(grep -c -F 'Wunused-value' pr.txt)
100+ pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt)
101+ pr_everything=$(grep -c '\-W' pr.txt)
102+
103+ master_variable=$(grep -c -F 'Wunused-variable' master.txt)
104+ master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt)
105+ master_value=$(grep -c -F 'Wunused-value' master.txt)
106+ master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt)
107+ master_everything=$(grep -c '\-W' master.txt )
108+
109+ echo "pr_everything=$pr_everything" >> $GITHUB_ENV
110+ echo "master_everything=$master_everything" >> $GITHUB_ENV
111+
112+ echo "Difference is how many warnings were added or removed from master to PR."
113+ echo "Negative numbers are better since you are removing warnings."
114+ echo " "
115+ echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
116+ echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
117+ echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
118+ echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
119+ echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
120+
121+
122+ - name : Check Differences
123+ if : env.pr_everything > env.master_everything
124+ run : |
125+ echo "Difference between warning count in PR is greater than in master."
104126
105127
0 commit comments