Skip to content

Commit 37fad92

Browse files
author
Alvaro Muñoz
authored
Merge pull request #5 from GitHubSecurityLab/jorgectf/runner-codeql
Use runner's CodeQL instead of downloading `gh-codeql`
2 parents e4a56df + 3711270 commit 37fad92

File tree

5 files changed

+80
-36
lines changed

5 files changed

+80
-36
lines changed

.github/scripts/pr-compile.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LANGUAGE=${2}
77
LIBRARY_SCANNED=false
88

99
echo "[+] Compiling all queries in $LANGUAGE"
10-
gh codeql query compile --threads=0 --check-only "./$LANGUAGE/"
10+
codeql query compile --threads=0 --check-only "./$LANGUAGE/"
1111

1212
for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
1313
if [[ ! -f "$file" ]]; then
@@ -19,12 +19,12 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
1919
echo "[+] Compiling $file (in $LANGUAGE)"
2020

2121
# compile the query
22-
gh codeql query compile --threads=0 --check-only --warnings=error "./$file"
22+
codeql query compile --threads=0 --check-only --warnings=error "./$file"
2323

2424
# if lib folder is modified
2525
elif [[ "$file" == $LANGUAGE/lib/* ]] && [[ $LIBRARY_SCANNED == false ]]; then
2626
echo "[+] Libray changed, compiling all queries in $LANGUAGE"
27-
gh codeql query compile --threads=0 --check-only --warnings=error "./$LANGUAGE/"
27+
codeql query compile --threads=0 --check-only --warnings=error "./$LANGUAGE/"
2828
# set LIBRARY_SCANNED to true to prevent recompiling
2929
LIBRARY_SCANNED=true
3030

.github/scripts/pr-suites-packs.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
1313
# suite folder
1414
if [[ "$file" == $LANGUAGE/suites/**.qls ]]; then
1515
echo "[+] Compiling Suite: $file"
16-
gh codeql resolve queries "$file"
16+
codeql resolve queries "$file"
1717

1818
# qlpack file and lock file
1919
elif [[ "$file" == $LANGUAGE/qlpack.yml ]] || [[ "$file" == $LANGUAGE/codeql-pack.lock.yml ]]; then
@@ -22,18 +22,18 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
2222
fi
2323
echo "[+] Compiling Pack: $LANGUAGE"
2424
# install deps
25-
gh codeql pack install "$LANGUAGE"
25+
codeql pack install "$LANGUAGE"
2626
# compile / create pack
27-
gh codeql pack create "$LANGUAGE"
27+
codeql pack create "$LANGUAGE"
2828

2929
# if the version of the pack is changed, comment in the PR
30-
PUBLISHED_VERSION=$(gh api /orgs/advanced-security/packages/container/codeql-"$LANGUAGE"/versions --jq '.[0].metadata.container.tags[0]')
30+
PUBLISHED_VERSION=$(gh api /orgs/githubsecuritylab/packages/container/codeql-"$LANGUAGE"/versions --jq '.[0].metadata.container.tags[0]')
3131
CURRENT_VERSION=$(grep version "$LANGUAGE"/qlpack.yml | awk '{print $2}')
3232

3333
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
3434
echo "[+] New version of pack detected: $PUBLISHED_VERSION (pub) != $CURRENT_VERSION (cur)"
3535

36-
comment="New version of pack \`advanced-security/codeql-$LANGUAGE\` will be created on merge: \`$PUBLISHED_VERSION\`->\`$CURRENT_VERSION\`"
36+
comment="New version of pack \`githubsecuritylab/codeql-$LANGUAGE\` will be created on merge: \`$PUBLISHED_VERSION\`->\`$CURRENT_VERSION\`"
3737

3838
if [[ ! $(gh pr view "$PR_NUMBER" --json comments --jq '.comments.[].body' | grep "$comment") ]]; then
3939
echo "[+] Commenting on PR"

.github/scripts/pr-tests.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if [[ ! -d ./${LANGUAGE}/test/ ]]; then
1010
fi
1111

1212
echo "[+] Compiling all queries in $LANGUAGE"
13-
gh codeql query compile --threads=0 --check-only "./$LANGUAGE/"
13+
codeql query compile --threads=0 --check-only "./$LANGUAGE/"
1414

1515
for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
1616
if [[ ! -f "$file" ]]; then
@@ -22,7 +22,7 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
2222
echo "[+] Test $file changed"
2323
TEST_DIR=$(dirname "$file")
2424
# run tests in the folder the change occured in
25-
gh codeql test run "$TEST_DIR"
25+
codeql test run "$TEST_DIR"
2626

2727
# if the files is a query file .ql or .qll
2828
elif [[ "$file" == $LANGUAGE/**.ql ]] || [[ "$file" == $LANGUAGE/**.qll ]] ; then
@@ -33,7 +33,7 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
3333

3434
if [[ -d "$TEST_DIR" ]]; then
3535
echo "[+] Running tests for $file -> $TEST_DIR"
36-
gh codeql test run "$TEST_DIR"
36+
codeql test run "$TEST_DIR"
3737

3838
else
3939
echo "[!] No tests found at $TEST_DIR"
@@ -45,7 +45,7 @@ for file in $(gh pr view "$PR_NUMBER" --json files --jq '.files.[].path'); do
4545

4646
if [[ -d "$TEST_DIR" ]]; then
4747
echo "[+] Running tests for $file -> $TEST_DIR"
48-
gh codeql test run "$TEST_DIR"
48+
codeql test run "$TEST_DIR"
4949
else
5050
echo "[!] No tests found for $file (in $LANGUAGE)"
5151
fi

.github/workflows/build.yml

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,24 @@ jobs:
2828
src:
2929
- '${{ matrix.language }}/**'
3030
31-
- name: Install CodeQL
31+
- name: Initialize CodeQL
32+
if: steps.changes.outputs.src == 'true'
33+
run: |
34+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
35+
| sort \
36+
| tail -n 1 \
37+
| tr -d '\n')"
38+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
39+
40+
- name: Install Packs
3241
if: steps.changes.outputs.src == 'true'
3342
env:
3443
GITHUB_TOKEN: ${{ github.token }}
3544
run: |
36-
gh extension install github/gh-codeql
37-
gh codeql pack download "codeql/${{ matrix.language }}-queries"
38-
gh codeql pack install "${{ matrix.language }}/lib"
39-
gh codeql pack install "${{ matrix.language }}/src"
40-
gh codeql pack install "${{ matrix.language }}/test"
45+
codeql pack download "codeql/${{ matrix.language }}-queries"
46+
codeql pack install "${{ matrix.language }}/lib"
47+
codeql pack install "${{ matrix.language }}/src"
48+
codeql pack install "${{ matrix.language }}/test"
4149
4250
- name: Compile Queries
4351
if: steps.changes.outputs.src == 'true'
@@ -81,14 +89,22 @@ jobs:
8189
src:
8290
- '${{ matrix.language }}/ext/**'
8391
84-
- name: Install CodeQL
92+
- name: Initialize CodeQL
93+
if: steps.changes.outputs.src == 'true'
94+
run: |
95+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
96+
| sort \
97+
| tail -n 1 \
98+
| tr -d '\n')"
99+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
100+
101+
- name: Install Packs
85102
if: steps.changes.outputs.src == 'true'
86103
env:
87104
GITHUB_TOKEN: ${{ github.token }}
88105
run: |
89-
gh extension install github/gh-codeql
90-
gh codeql pack install "${{ matrix.language }}/ext/"
91-
gh codeql pack install "${{ matrix.language }}/ext-library-sources/"
92-
gh codeql pack create "${{ matrix.language }}/ext/"
93-
gh codeql pack create "${{ matrix.language }}/ext-library-sources/"
106+
codeql pack install "${{ matrix.language }}/ext/"
107+
codeql pack install "${{ matrix.language }}/ext-library-sources/"
108+
codeql pack create "${{ matrix.language }}/ext/"
109+
codeql pack create "${{ matrix.language }}/ext-library-sources/"
94110

.github/workflows/publish.yml

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ jobs:
2222
steps:
2323
- uses: actions/checkout@v3
2424

25+
- name: Initialize CodeQL
26+
run: |
27+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
28+
| sort \
29+
| tail -n 1 \
30+
| tr -d '\n')"
31+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
32+
2533
- name: "Check and publish codeql-LANG-queries (src) pack"
2634
env:
2735
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -30,9 +38,8 @@ jobs:
3038
CURRENT_VERSION=$(grep version ${{ matrix.language }}/src/qlpack.yml | awk '{print $2}')
3139
3240
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
33-
gh extension install github/gh-codeql
34-
gh codeql pack install "${{ matrix.language }}/src"
35-
gh codeql pack publish "${{ matrix.language }}/src"
41+
codeql pack install "${{ matrix.language }}/src"
42+
codeql pack publish "${{ matrix.language }}/src"
3643
fi
3744
3845
library:
@@ -50,6 +57,14 @@ jobs:
5057
steps:
5158
- uses: actions/checkout@v3
5259

60+
- name: Initialize CodeQL
61+
run: |
62+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
63+
| sort \
64+
| tail -n 1 \
65+
| tr -d '\n')"
66+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
67+
5368
- name: "Check and publish codeql-LANG-libs (lib) pack"
5469
env:
5570
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -58,9 +73,8 @@ jobs:
5873
CURRENT_VERSION=$(grep version ${{ matrix.language }}/lib/qlpack.yml | awk '{print $2}')
5974
6075
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
61-
gh extension install github/gh-codeql
62-
gh codeql pack install "${{ matrix.language }}/lib"
63-
gh codeql pack publish "${{ matrix.language }}/lib"
76+
codeql pack install "${{ matrix.language }}/lib"
77+
codeql pack publish "${{ matrix.language }}/lib"
6478
fi
6579
6680
extensions:
@@ -74,6 +88,14 @@ jobs:
7488
steps:
7589
- uses: actions/checkout@v3
7690

91+
- name: Initialize CodeQL
92+
run: |
93+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
94+
| sort \
95+
| tail -n 1 \
96+
| tr -d '\n')"
97+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
98+
7799
- name: Check and publish codeql-LANG-extensions (ext) pack
78100
env:
79101
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -82,9 +104,8 @@ jobs:
82104
CURRENT_VERSION=$(grep version ${{ matrix.language }}/ext/qlpack.yml | awk '{print $2}')
83105
84106
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
85-
gh extension install github/gh-codeql
86-
gh codeql pack install "${{ matrix.language }}/ext"
87-
gh codeql pack publish "${{ matrix.language }}/ext"
107+
codeql pack install "${{ matrix.language }}/ext"
108+
codeql pack publish "${{ matrix.language }}/ext"
88109
fi
89110
90111
library_sources_extensions:
@@ -98,6 +119,14 @@ jobs:
98119
steps:
99120
- uses: actions/checkout@v3
100121

122+
- name: Initialize CodeQL
123+
run: |
124+
VERSION="$(find "${{ runner.tool_cache }}/CodeQL/" -maxdepth 1 -mindepth 1 -type d -print \
125+
| sort \
126+
| tail -n 1 \
127+
| tr -d '\n')"
128+
echo "$VERSION/x64/codeql" >> $GITHUB_PATH
129+
101130
- name: Check and publish codeql-LANG-library-sources (ext-library-sources) pack
102131
env:
103132
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -106,7 +135,6 @@ jobs:
106135
CURRENT_VERSION=$(grep version ${{ matrix.language }}/ext-library-sources/qlpack.yml | awk '{print $2}')
107136
108137
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
109-
gh extension install github/gh-codeql
110-
gh codeql pack install "${{ matrix.language }}/ext-library-sources"
111-
gh codeql pack publish "${{ matrix.language }}/ext-library-sources"
138+
codeql pack install "${{ matrix.language }}/ext-library-sources"
139+
codeql pack publish "${{ matrix.language }}/ext-library-sources"
112140
fi

0 commit comments

Comments
 (0)