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