@@ -3,108 +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- continue-on-error : true
38- run : |
39- grep -F 'Wunused-variable' master.txt > mUnused.txt
40- grep -F 'Wunused-variable' pr.txt > prUnused.txt
41- diff prUnused.txt mUnused.txt
42-
43- - name : Unused Dummy Arguments Diff
44- continue-on-error : true
45- run : |
46- grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
47- grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
48- diff prDummy.txt mDummy.txt
49-
50- - name : Unused Value Diff
51- continue-on-error : true
52- run : |
53- grep -F 'Wunused-value' pr.txt > prUnused_val.txt
54- grep -F 'Wunused-value' master.txt > mUnused_val.txt
55- diff prUnused_val.txt mUnused_val.txt
56-
57- - name : Maybe Uninitialized Variables Diff
58- continue-on-error : true
59- run : |
60- grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
61- grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
62- diff prMaybe.txt mMaybe.txt
63-
64-
65- - name : Everything Diff
66- continue-on-error : true
67- run : |
68- grep '\-W' pr.txt > pr_every.txt
69- grep '\-W' master.txt > m_every.txt
70- diff pr_every.txt m_every.txt
71-
72- - name : List of Warnings
73- run : |
74- cat pr_every.txt
75-
76-
77- - name : Summary
78- continue-on-error : true
79- run : |
80- pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
81- pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
82- pr_value=$(grep -c -F 'Wunused-value' pr.txt)
83- pr_uninit=$(grep -c -F 'Wmaybe-uninitialized' pr.txt)
84- pr_everything=$(grep -c '\-W' pr.txt)
85-
86- master_variable=$(grep -c -F 'Wunused-variable' master.txt)
87- master_argument=$(grep -c -F 'Wunused-dummy-argument' master.txt)
88- master_value=$(grep -c -F 'Wunused-value' master.txt)
89- master_uninit=$(grep -c -F 'Wmaybe-uninitialized' master.txt)
90- master_everything=$(grep -c '\-W' master.txt )
91-
92- echo "pr_everything=$pr_everything" >> $GITHUB_ENV
93- echo "master_everything=$master_everything" >> $GITHUB_ENV
94-
95- echo "Difference is how many warnings were added or removed from master to PR."
96- echo "Negative numbers are better since you are removing warnings."
97- echo " "
98- echo "Unused Variable Count: $pr_variable, Difference: $((pr_variable - master_variable))"
99- echo "Unused Dummy Argument: $pr_argument, Difference: $((pr_argument - master_argument))"
100- echo "Unused Value: $pr_value, Difference: $((pr_value - master_value))"
101- echo "Maybe Uninitialized: $pr_uninit, Difference: $((pr_uninit - master_uninit))"
102- echo "Everything: $pr_everything, Difference: $((pr_everything - master_everything))"
103-
104-
105- - name : Check Differences
106- if : env.pr_everything > env.master_everything
107- run : |
108- echo "Difference between warning count in PR is greater than in master."
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@v3
32+ with :
33+ path : pr
34+ - name : Clone - Master
35+ uses : actions/checkout@v3
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."
109126
110127
0 commit comments