|
12 | 12 |
|
13 | 13 | jobs: |
14 | 14 |
|
15 | | - build_query_pack: |
16 | | - runs-on: ubuntu-latest-xl |
17 | | - steps: |
18 | | - - uses: actions/checkout@v2 |
19 | | - - name: Find codeql |
20 | | - id: find-codeql |
21 | | - uses: github/codeql-action/init@esbena/ql |
22 | | - with: |
23 | | - languages: javascript # does not matter |
24 | | - - name: Build query pack |
25 | | - run: | |
26 | | - cd ql/src |
27 | | - "${CODEQL}" pack create |
28 | | - cd .codeql/pack/codeql/ql-all/0.0.0 |
29 | | - zip "${PACKZIP}" -r . |
30 | | - env: |
31 | | - CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} |
32 | | - PACKZIP: ${{ runner.temp }}/query-pack.zip |
33 | | - - name: Upload query pack |
34 | | - uses: actions/upload-artifact@v2 |
35 | | - with: |
36 | | - name: query-pack |
37 | | - path: ${{ runner.temp }}/query-pack.zip |
38 | | - |
39 | | - # XXX this is mostly an inlined copy of the 'build' job in build.yml |
40 | | - build_extractor_pack: |
41 | | - strategy: |
42 | | - matrix: |
43 | | - os: [ubuntu-latest] |
44 | | - |
45 | | - runs-on: ${{ matrix.os }} |
46 | | - |
47 | | - steps: |
48 | | - - uses: actions/checkout@v2 |
49 | | - - uses: actions/cache@v2 |
50 | | - with: |
51 | | - path: | |
52 | | - ~/.cargo/registry |
53 | | - ~/.cargo/git |
54 | | - target |
55 | | - key: ${{ runner.os }}-rust-cargo-${{ hashFiles('**/Cargo.lock') }} |
56 | | - - name: Check formatting |
57 | | - run: cargo fmt --all -- --check |
58 | | - - name: Build |
59 | | - run: cargo build --verbose |
60 | | - - name: Run tests |
61 | | - run: cargo test --verbose |
62 | | - - name: Release build |
63 | | - run: cargo build --release |
64 | | - - name: Generate dbscheme |
65 | | - run: target/release/ql-generator --dbscheme ql/src/ql.dbscheme --library ql/src/codeql_ql/ast/internal/TreeSitter.qll |
66 | | - - uses: actions/upload-artifact@v2 |
67 | | - with: |
68 | | - name: ql.dbscheme |
69 | | - path: ql/src/ql.dbscheme |
70 | | - - uses: actions/upload-artifact@v2 |
71 | | - with: |
72 | | - name: TreeSitter.qll |
73 | | - path: ql/src/codeql_ql/ast/internal/TreeSitter.qll |
74 | | - - uses: actions/upload-artifact@v2 |
75 | | - with: |
76 | | - name: extractor-${{ matrix.os }} |
77 | | - path: | |
78 | | - target/release/ql-extractor |
79 | | - retention-days: 1 |
80 | | - # XXX this is mostly an inlined copy of the 'package' job in build.yml |
81 | | - - run: | |
82 | | - mkdir -p ${PACK_DIR} |
83 | | - env: |
84 | | - PACK_DIR: ${{ runner.temp }}/pack |
85 | | -
|
86 | | - - name: Pack |
87 | | - working-directory: ${{ runner.temp }}/pack |
88 | | - run: | |
89 | | - mkdir -p ql |
90 | | - cp -r "${CHECKOUT}/codeql-extractor.yml" "${CHECKOUT}/tools" "${CHECKOUT}/ql/src/ql.dbscheme" "${CHECKOUT}/ql/src/ql.dbscheme.stats" ql/ |
91 | | - mkdir -p ql/tools/linux64 |
92 | | - cp "${CHECKOUT}/target/release/ql-extractor" ql/tools/linux64/extractor |
93 | | - chmod +x ql/tools/linux64/extractor |
94 | | - zip -rq codeql-ql.zip ql |
95 | | - env: |
96 | | - CHECKOUT: ${{ github.workspace }} |
97 | | - |
98 | | - - uses: actions/upload-artifact@v2 |
99 | | - with: |
100 | | - name: extractor-pack |
101 | | - path: ${{ runner.temp }}/pack/codeql-ql.zip |
102 | | - retention-days: 1 |
| 15 | + build: |
| 16 | + uses: github/codeql-ql/.github/workflows/build.yml@esbena/workflow-improvements |
| 17 | + with: |
| 18 | + os: '[ "ubuntu-latest" ]' |
103 | 19 |
|
104 | 20 | analyze: |
105 | 21 | name: Analyze |
106 | 22 | needs: |
107 | | - - build_query_pack |
108 | | - - build_extractor_pack |
| 23 | + - build |
109 | 24 |
|
110 | | - runs-on: ubuntu-latest-xl |
| 25 | + runs-on: ubuntu-latest |
111 | 26 |
|
112 | 27 | permissions: |
113 | 28 | actions: read |
114 | 29 | contents: read |
115 | 30 | security-events: write |
116 | 31 |
|
117 | 32 | steps: |
118 | | - - name: Download query pack |
| 33 | + - name: Download pack |
119 | 34 | uses: actions/download-artifact@v2 |
120 | 35 | with: |
121 | | - name: query-pack |
122 | | - path: ${{ runner.temp }}/query-pack-artifact |
| 36 | + name: codeql-ql-pack |
| 37 | + path: ${{ runner.temp }}/codeql-ql-pack-artifact |
123 | 38 |
|
124 | | - - name: Download extractor pack |
125 | | - uses: actions/download-artifact@v2 |
126 | | - with: |
127 | | - name: extractor-pack |
128 | | - path: ${{ runner.temp }}/extractor-pack-artifact |
129 | | - |
130 | | - - name: Prepare packs |
131 | | - id: prepare-packs |
| 39 | + - name: Prepare pack |
132 | 40 | run: | |
133 | | - set -x |
134 | | - mkdir -p "${COMPLETE_PACK}" "${PACKS_TMP}" |
135 | | - cd "${PACKS_TMP}" |
136 | | - unzip "${QUERY_PACK_ARTIFACT}/*.zip" -d query-pack-artifact-unzipped |
137 | | - cp -r query-pack-artifact-unzipped/. "${COMPLETE_PACK}" |
138 | | - unzip "${EXTRACTOR_PACK_ARTIFACT}/*.zip" -d extractor-pack-artifact-unzipped |
139 | | - cp -r extractor-pack-artifact-unzipped/ql/. "${COMPLETE_PACK}" |
140 | | - cd "${COMPLETE_PACK}" |
141 | | - zip "${COMPLETE_PACK_ZIP}" -r . |
| 41 | + unzip "${PACK_ARTIFACT}/*.zip" -d "${PACK}" |
142 | 42 | env: |
143 | | - PACKS_TMP: ${{ runner.temp }}/pack-artifacts.tmp |
144 | | - QUERY_PACK_ARTIFACT: ${{ runner.temp }}/query-pack-artifact |
145 | | - EXTRACTOR_PACK_ARTIFACT: ${{ runner.temp }}/extractor-pack-artifact |
146 | | - COMPLETE_PACK: ${{ runner.temp }}/pack |
147 | | - COMPLETE_PACK_ZIP: ${{ runner.temp }}/pack.zip |
| 43 | + PACK_ARTIFACT: ${{ runner.temp }}/codeql-ql-pack-artifact |
| 44 | + PACK: ${{ runner.temp }}/pack |
148 | 45 |
|
149 | 46 | - name: Hack codeql-action options |
150 | 47 | run: | |
151 | | - JSON=$(jq -nc --arg pack "${COMPLETE_PACK}" '.resolve.queries=["--search-path", $pack] | .resolve.extractor=["--search-path", $pack] | .database.init=["--search-path", $pack]') |
| 48 | + JSON=$(jq -nc --arg pack "${PACK}" '.resolve.queries=["--search-path", $pack] | .resolve.extractor=["--search-path", $pack] | .database.init=["--search-path", $pack]') |
152 | 49 | echo "CODEQL_ACTION_EXTRA_OPTIONS=${JSON}" >> ${GITHUB_ENV} |
153 | 50 | env: |
154 | | - COMPLETE_PACK: ${{ runner.temp }}/pack |
| 51 | + PACK: ${{ runner.temp }}/pack |
155 | 52 |
|
156 | 53 | - name: Checkout repository |
157 | 54 | uses: actions/checkout@v2 |
|
172 | 69 | path: ${{ runner.temp }}/db |
173 | 70 | retention-days: 1 |
174 | 71 |
|
175 | | - - name: Upload complete pack |
176 | | - uses: actions/upload-artifact@v2 |
177 | | - with: |
178 | | - name: complete-pack |
179 | | - path: ${{ runner.temp }}/pack.zip |
180 | | - retention-days: 1 |
0 commit comments