|
90 | 90 | with: |
91 | 91 | name: code-scanning-cpp-query-pack.zip |
92 | 92 | path: code-scanning-cpp-query-pack.zip |
93 | | - |
94 | | - - name: Create LGTM query pack |
95 | | - env: |
96 | | - CODEQL_HOME: ${{ github.workspace }}/codeql_home |
97 | | - run: | |
98 | | - PATH=$PATH:$CODEQL_HOME/codeql |
99 | | - mkdir -p lgtm-cpp-query-pack |
100 | | - function copy_queries_for_pack { |
101 | | - for rule_dir in $(codeql resolve queries $2/$1/src/codeql-suites/$1-default.qls | xargs -L1 dirname | uniq) |
102 | | - do |
103 | | - copy_to_root="lgtm-cpp-query-pack/$(realpath --relative-to "./$2/$1/src/" "$rule_dir")" |
104 | | - mkdir -p "$copy_to_root" |
105 | | - # Copy each selected ql file, plus the related files |
106 | | - find "$rule_dir" -name '*.ql' -o -name '*.c' -name '*.cpp' -o -name '*.png' -exec cp -n {} "$copy_to_root" \; |
107 | | - done |
108 | | - } |
109 | | - echo "Copying autosar-default queries (CPP)" |
110 | | - copy_queries_for_pack "autosar" "cpp" |
111 | | - echo "Copying cert-default queries (CPP)" |
112 | | - copy_queries_for_pack "cert" "cpp" |
113 | | -
|
114 | | - echo "Copying misra-default queries (C)" |
115 | | - copy_queries_for_pack "misra" "c" |
116 | | - echo "Copying cert-default queries (C)" |
117 | | - copy_queries_for_pack "cert" "c" |
118 | | -
|
119 | | -
|
120 | | - # Now copy all the .qll files |
121 | | - lgtm_pack_dir=$(realpath lgtm-cpp-query-pack) |
122 | | - for query_pack in autosar cert common |
123 | | - do |
124 | | - echo "Copying $query_pack qll files" |
125 | | - pushd cpp/$query_pack/src |
126 | | - for query_library in $(find . -name \*.qll) |
127 | | - do |
128 | | - qll_dir=$(dirname "$lgtm_pack_dir/$query_library") |
129 | | - echo "Making $qll_dir" |
130 | | - mkdir -p "$qll_dir" |
131 | | - cp "$query_library" "$lgtm_pack_dir/$query_library" |
132 | | - done |
133 | | - popd |
134 | | - done |
135 | | -
|
136 | | - for query_pack in misra cert common |
137 | | - do |
138 | | - echo "Copying $query_pack qll files" |
139 | | - pushd c/$query_pack/src |
140 | | - for query_library in $(find . -name \*.qll) |
141 | | - do |
142 | | - qll_dir=$(dirname "$lgtm_pack_dir/$query_library") |
143 | | - echo "Making $qll_dir" |
144 | | - mkdir -p "$qll_dir" |
145 | | - cp "$query_library" "$lgtm_pack_dir/$query_library" |
146 | | - done |
147 | | - popd |
148 | | - done |
149 | | -
|
150 | | - cd lgtm-cpp-query-pack |
151 | | - zip -9 -r ../lgtm-cpp-query-pack.zip * |
152 | | -
|
153 | | - - name: Upload LGTM query pack |
154 | | - uses: actions/upload-artifact@v2 |
155 | | - with: |
156 | | - name: lgtm-cpp-query-pack.zip |
157 | | - path: lgtm-cpp-query-pack.zip |
0 commit comments