Skip to content

Commit 6535243

Browse files
ci: detect CodeQL languages per repository
1 parent 741b109 commit 6535243

1 file changed

Lines changed: 32 additions & 3 deletions

File tree

‎.github/workflows/codeql.yml‎

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,43 @@ name: CodeQL
22
on:
33
push:
44
pull_request:
5-
schedule: [{cron: '23 3 * * 1'}]
6-
permissions: {contents: read, security-events: write}
5+
schedule:
6+
- cron: '23 3 * * 1'
7+
permissions:
8+
contents: read
9+
security-events: write
710
jobs:
11+
detect:
12+
runs-on: ubuntu-latest
13+
outputs:
14+
languages: ${{ steps.lang.outputs.languages }}
15+
steps:
16+
- uses: actions/checkout@v4
17+
- id: lang
18+
shell: bash
19+
run: |
20+
langs=''
21+
find . -name '*.py' -print -quit | grep -q . && langs="$langs python"
22+
find . ( -name '*.js' -o -name '*.ts' -o -name '*.tsx' ) -print -quit | grep -q . && langs="$langs javascript-typescript"
23+
[ -f go.mod ] && langs="$langs go"
24+
[ -f Cargo.toml ] && langs="$langs rust"
25+
[ -f pom.xml ] || [ -f build.gradle ] && langs="$langs java-kotlin"
26+
find . ( -name '*.c' -o -name '*.cpp' -o -name '*.h' ) -print -quit | grep -q . && langs="$langs c-cpp"
27+
[ -n "$langs" ] || langs=' python'
28+
langs="${langs# }"
29+
echo "languages=$(printf '%s
30+
' $langs | jq -Rsc 'split("\n")[:-1]')" >> "$GITHUB_OUTPUT"
831
analyze:
32+
needs: detect
33+
strategy:
34+
fail-fast: false
35+
matrix:
36+
language: ${{ fromJSON(needs.detect.outputs.languages) }}
937
runs-on: ubuntu-latest
1038
steps:
1139
- uses: actions/checkout@v4
1240
- uses: github/codeql-action/init@v3
13-
with: {languages: 'python,javascript-typescript,go,rust,java-kotlin,c-cpp'}
41+
with:
42+
languages: ${{ matrix.language }}
1443
- uses: github/codeql-action/autobuild@v3
1544
- uses: github/codeql-action/analyze@v3

0 commit comments

Comments
 (0)