5
5
branches :
6
6
- main
7
7
- " rc/**"
8
+
8
9
push :
9
10
branches :
10
11
- main
@@ -69,14 +70,17 @@ jobs:
69
70
run : |
70
71
PATH=$PATH:$CODEQL_HOME/codeql
71
72
pip install -r scripts/requirements.txt
72
- find rule_packages/ -name '*.json' -exec basename {} .json \; | xargs --max-procs "$XARGS_MAX_PROCS" --max-args 1 python3 scripts/generate_rules/generate_package_files.py -a
73
+ find rule_packages/cpp -name '*.json' -exec basename {} .json \; | xargs --max-procs "$XARGS_MAX_PROCS" --max-args 1 python3 scripts/generate_rules/generate_package_files.py -a cpp
74
+ find rule_packages/c -name '*.json' -exec basename {} .json \; | xargs --max-procs "$XARGS_MAX_PROCS" --max-args 1 python3 scripts/generate_rules/generate_package_files.py -a c
73
75
74
76
echo "Generating help markdown file for cert"
75
77
$CODEQL_LATEST_HOME/codeql/codeql generate query-help -vvv --format=markdown -o cpp/cert/src/ cpp/cert/src/rules
78
+ $CODEQL_LATEST_HOME/codeql/codeql generate query-help -vvv --format=markdown -o c/cert/src/ c/cert/src/rules
76
79
77
80
codeql query compile --search-path cpp --threads 0 cpp
81
+ codeql query compile --search-path c --search-path cpp --threads 0 c
78
82
cd ..
79
- zip -r codeql-coding-standards/code-scanning-cpp-query-pack-anon.zip codeql-coding-standards/cpp/ codeql-coding-standards/.codeqlmanifest.json codeql-coding-standards/supported_codeql_configs.json codeql-coding-standards/scripts/deviations codeql-coding-standards/scripts/reports
83
+ zip -r codeql-coding-standards/code-scanning-cpp-query-pack-anon.zip codeql-coding-standards/c/ codeql-coding-standards/ cpp/ codeql-coding-standards/.codeqlmanifest.json codeql-coding-standards/supported_codeql_configs.json codeql-coding-standards/scripts/deviations codeql-coding-standards/scripts/reports
80
84
81
85
- name : Upload GHAS Query Pack
82
86
uses : actions/upload-artifact@v2
@@ -91,10 +95,10 @@ jobs:
91
95
PATH=$PATH:$CODEQL_HOME/codeql
92
96
mkdir -p lgtm-cpp-query-pack
93
97
function copy_queries_for_pack {
94
- for q in $(codeql resolve queries cpp /$1/src/codeql-suites/$1-default.qls)
98
+ for q in $(codeql resolve queries $2 /$1/src/codeql-suites/$1-default.qls)
95
99
do
96
100
copy_from_root_name="${q%.*}"
97
- copy_to_root_name=$(realpath --relative-to "./cpp /$1/src/" "$copy_from_root_name")
101
+ copy_to_root_name=$(realpath --relative-to "./$2 /$1/src/" "$copy_from_root_name")
98
102
query_dir=$(dirname "lgtm-cpp-query-pack/$copy_to_root_name")
99
103
mkdir -p "$query_dir"
100
104
# Copy each selected ql file, plus the related files (qhelp, qhelp implementation)
@@ -103,10 +107,18 @@ jobs:
103
107
cp "$copy_from_root_name.qhelp" "lgtm-cpp-query-pack/$copy_to_root_name.qhelp"
104
108
done
105
109
}
106
- echo "Copying autosar-default queries"
107
- copy_queries_for_pack "autosar"
108
- echo "Copying cert-default queries"
109
- copy_queries_for_pack "cert"
110
+
111
+ echo "Copying autosar-default queries (CPP)"
112
+ copy_queries_for_pack "autosar" "cpp"
113
+ echo "Copying cert-default queries (CPP)"
114
+ copy_queries_for_pack "cert" "cpp"
115
+
116
+ echo "Copying misra-default queries (C)"
117
+ copy_queries_for_pack "misra" "c"
118
+ echo "Copying cert-default queries (C)"
119
+ copy_queries_for_pack "cert" "c"
120
+
121
+
110
122
# Now copy all the .qll files
111
123
lgtm_pack_dir=$(realpath lgtm-cpp-query-pack)
112
124
for query_pack in autosar cert common
@@ -122,6 +134,22 @@ jobs:
122
134
done
123
135
popd
124
136
done
137
+
138
+
139
+ for query_pack in misra cert common
140
+ do
141
+ echo "Copying $query_pack qll files"
142
+ pushd c/$query_pack/src
143
+ for query_library in $(find . -name \*.qll)
144
+ do
145
+ qll_dir=$(dirname "$lgtm_pack_dir/$query_library")
146
+ echo "Making $qll_dir"
147
+ mkdir -p "$qll_dir"
148
+ cp "$query_library" "$lgtm_pack_dir/$query_library"
149
+ done
150
+ popd
151
+ done
152
+
125
153
cd lgtm-cpp-query-pack
126
154
zip -9 -r ../lgtm-cpp-query-pack-anon.zip *
127
155
@@ -174,9 +202,19 @@ jobs:
174
202
echo "Generating help markdown file for $s"
175
203
$CODEQL_LATEST_HOME/codeql/codeql generate query-help -vvv --format=markdown -o cpp/$s/src/ cpp/$s/src/rules
176
204
done
205
+
206
+ for s in "misra" "cert"
207
+ do
208
+ echo "Generating help markdown file for $s"
209
+ $CODEQL_LATEST_HOME/codeql/codeql generate query-help -vvv --format=markdown -o c/$s/src/ c/$s/src/rules
210
+ done
211
+
212
+
177
213
codeql query compile --search-path cpp --threads 0 cpp
214
+ codeql query compile --search-path c --search-path cpp --threads 0 c
215
+
178
216
cd ..
179
- zip -r codeql-coding-standards/code-scanning-cpp-query-pack.zip codeql-coding-standards/cpp/ codeql-coding-standards/.codeqlmanifest.json codeql-coding-standards/supported_codeql_configs.json codeql-coding-standards/scripts/deviations codeql-coding-standards/scripts/reports
217
+ zip -r codeql-coding-standards/code-scanning-cpp-query-pack.zip codeql-coding-standards/c/ codeql-coding-standards/ cpp/ codeql-coding-standards/.codeqlmanifest.json codeql-coding-standards/supported_codeql_configs.json codeql-coding-standards/scripts/deviations codeql-coding-standards/scripts/reports
180
218
181
219
- name : Upload GHAS Query Pack
182
220
uses : actions/upload-artifact@v2
@@ -191,18 +229,25 @@ jobs:
191
229
PATH=$PATH:$CODEQL_HOME/codeql
192
230
mkdir -p lgtm-cpp-query-pack
193
231
function copy_queries_for_pack {
194
- for rule_dir in $(codeql resolve queries cpp /$1/src/codeql-suites/$1-default.qls | xargs -L1 dirname | uniq)
232
+ for rule_dir in $(codeql resolve queries $2 /$1/src/codeql-suites/$1-default.qls | xargs -L1 dirname | uniq)
195
233
do
196
- copy_to_root="lgtm-cpp-query-pack/$(realpath --relative-to "./cpp /$1/src/" "$rule_dir")"
234
+ copy_to_root="lgtm-cpp-query-pack/$(realpath --relative-to "./$2 /$1/src/" "$rule_dir")"
197
235
mkdir -p "$copy_to_root"
198
236
# Copy each selected ql file, plus the related files (qhelp, qhelp implementation)
199
- find "$rule_dir" -name '*.ql' -o -name '*.qhelp' -o -name '*.cpp' -o -name '*.png' -exec cp -n {} "$copy_to_root" \;
237
+ find "$rule_dir" -name '*.ql' -o -name '*.qhelp' -o -name '*.c' -name '*. cpp' -o -name '*.png' -exec cp -n {} "$copy_to_root" \;
200
238
done
201
239
}
202
- echo "Copying autosar-default queries"
203
- copy_queries_for_pack "autosar"
204
- echo "Copying cert-default queries"
205
- copy_queries_for_pack "cert"
240
+ echo "Copying autosar-default queries (CPP)"
241
+ copy_queries_for_pack "autosar" "cpp"
242
+ echo "Copying cert-default queries (CPP)"
243
+ copy_queries_for_pack "cert" "cpp"
244
+
245
+ echo "Copying misra-default queries (C)"
246
+ copy_queries_for_pack "misra" "c"
247
+ echo "Copying cert-default queries (C)"
248
+ copy_queries_for_pack "cert" "c"
249
+
250
+
206
251
# Now copy all the .qll files
207
252
lgtm_pack_dir=$(realpath lgtm-cpp-query-pack)
208
253
for query_pack in autosar cert common
@@ -218,6 +263,21 @@ jobs:
218
263
done
219
264
popd
220
265
done
266
+
267
+ for query_pack in misra cert common
268
+ do
269
+ echo "Copying $query_pack qll files"
270
+ pushd c/$query_pack/src
271
+ for query_library in $(find . -name \*.qll)
272
+ do
273
+ qll_dir=$(dirname "$lgtm_pack_dir/$query_library")
274
+ echo "Making $qll_dir"
275
+ mkdir -p "$qll_dir"
276
+ cp "$query_library" "$lgtm_pack_dir/$query_library"
277
+ done
278
+ popd
279
+ done
280
+
221
281
cd lgtm-cpp-query-pack
222
282
zip -9 -r ../lgtm-cpp-query-pack.zip *
223
283
0 commit comments