Skip to content

Commit 9fb63e5

Browse files
authored
Feat: Add support to csharp CodeQL analysis (aws-observability#876)
Solves aws-observability#867 --------- Signed-off-by: Raphael Silva <[email protected]>
1 parent 08179bd commit 9fb63e5

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

.github/workflows/codeql.yml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,20 @@ jobs:
3838
strategy:
3939
fail-fast: false
4040
matrix:
41-
language: [ 'go', 'javascript', 'python', 'java' ]
41+
# Targets of the codeql analysis
42+
# Each entry is composed by two elements: the language and the directory
43+
# containing source code for that language.
44+
target:
45+
- language: 'go'
46+
directory: 'go'
47+
- language: 'javascript'
48+
directory: 'nodejs'
49+
- language: 'python'
50+
directory: 'python'
51+
- language: 'java'
52+
directory: 'java'
53+
- language: 'csharp'
54+
directory: 'dotnet'
4255
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
4356
# Use only 'java' to analyze code written in Java, Kotlin or both
4457
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
@@ -52,7 +65,7 @@ jobs:
5265
- name: Initialize CodeQL
5366
uses: github/codeql-action/init@v2
5467
with:
55-
languages: ${{ matrix.language }}
68+
languages: ${{ matrix.target.language }}
5669
# If you wish to specify custom queries, you can do so here or in a config file.
5770
# By default, queries listed here will override any specified in a config file.
5871
# Prefix the list here with "+" to use these queries and those in the config file.
@@ -65,7 +78,10 @@ jobs:
6578
# If this step fails, then you should remove it and run the build manually (see below)
6679
- name: Autobuild
6780
uses: github/codeql-action/autobuild@v2
68-
if: ${{ matrix.language != 'java' }}
81+
with:
82+
working-directory: ${{ matrix.target.directory }}
83+
# There are no array literals in GHA that is why we need to use fromJson.
84+
if: ${{ !contains(fromJson('["java", "csharp"]'), matrix.target.language) }}
6985

7086
# ℹ️ Command-line programs to run using the OS shell.
7187
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -82,16 +98,28 @@ jobs:
8298
with:
8399
distribution: corretto
84100
java-version: '11'
85-
if: ${{ matrix.language == 'java' }}
101+
if: ${{ matrix.target.language == 'java' }}
86102

87103
- name: build Java
88104
uses: gradle/gradle-build-action@v2
89105
with:
90106
arguments: build --no-build-cache
91-
build-root-directory: java
92-
if: ${{ matrix.language == 'java' }}
107+
build-root-directory: ${{ matrix.target.directory }}
108+
if: ${{ matrix.target.language == 'java' }}
109+
110+
- name: setup dotnet
111+
uses: actions/setup-dotnet@v3
112+
with:
113+
dotnet-version: 6.x
114+
if: ${{ matrix.target.language == 'csharp' }}
115+
116+
- name: build dotnet
117+
# Build all dotnet applications from this directory
118+
run: find . -name '*.sln' -exec dotnet build '{}' \;
119+
working-directory: ${{ matrix.target.directory }}
120+
if: ${{ matrix.target.language == 'csharp' }}
93121

94122
- name: Perform CodeQL Analysis
95123
uses: github/codeql-action/analyze@v2
96124
with:
97-
category: "/language:${{matrix.language}}"
125+
category: "/language:${{matrix.target.language}}"

0 commit comments

Comments
 (0)