@@ -121,8 +121,8 @@ jobs:
121121 run : |
122122 make install
123123
124- - name : Check if project uses Poetry
125- id : check_poetry
124+ - name : Check language tools used
125+ id : check_languages
126126 run : |
127127 if [ -f "pyproject.toml" ] && grep -q '\[tool.poetry\]' "pyproject.toml"; then
128128 echo "****************"
@@ -135,10 +135,6 @@ jobs:
135135 echo "****************"
136136 echo "uses_poetry=false" >> "$GITHUB_OUTPUT"
137137 fi
138-
139- - name : Check if project uses Java
140- id : check_java
141- run : |
142138 if [ -f pom.xml ]; then
143139 echo "****************"
144140 echo "Detected a Java project"
@@ -150,21 +146,84 @@ jobs:
150146 echo "****************"
151147 echo "uses_java=false" >> "$GITHUB_OUTPUT"
152148 fi
149+ if [ -f package-lock.json ]; then
150+ echo "****************"
151+ echo "Detected a Node.js project"
152+ echo "****************"
153+ echo "uses_node=true" >> "$GITHUB_OUTPUT"
154+ else
155+ echo "****************"
156+ echo "Project does not use Node.js"
157+ echo "****************"
158+ echo "uses_node=false" >> "$GITHUB_OUTPUT"
159+ fi
160+ if [ -f go.sum ]; then
161+ echo "****************"
162+ echo "Detected a Go project"
163+ echo "****************"
164+ echo "uses_go=true" >> "$GITHUB_OUTPUT"
165+ else
166+ echo "****************"
167+ echo "Project does not use Go"
168+ echo "****************"
169+ echo "uses_go=false" >> "$GITHUB_OUTPUT"
170+ fi
153171
154- - name : Check licenses
155- uses : aquasecurity/trivy-action@0.33.1
172+ - name : Check python licenses
173+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
174+ if : ${{ steps.check_languages.outputs.uses_poetry == 'true' }}
175+ with :
176+ scan-type : " fs"
177+ scan-ref : " poetry.lock"
178+ severity : " CRITICAL,HIGH"
179+ scanners : " license"
180+ format : " json"
181+ output : " license_scan_python.json"
182+ exit-code : " 1"
183+ list-all-pkgs : " true"
184+ - name : Check node licenses
185+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
186+ if : ${{ steps.check_languages.outputs.uses_node == 'true' }}
187+ with :
188+ scan-type : " fs"
189+ scan-ref : " package-lock.json"
190+ severity : " CRITICAL,HIGH"
191+ scanners : " license"
192+ format : " json"
193+ output : " license_scan_node.json"
194+ exit-code : " 1"
195+ list-all-pkgs : " true"
196+ - name : Check go licenses
197+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
198+ if : ${{ steps.check_languages.outputs.uses_go == 'true' }}
199+ with :
200+ scan-type : " fs"
201+ scan-ref : " go.sum"
202+ severity : " CRITICAL,HIGH"
203+ scanners : " license"
204+ format : " json"
205+ output : " license_scan_go.json"
206+ exit-code : " 1"
207+ list-all-pkgs : " true"
208+ - name : Check java licenses
209+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
210+ if : ${{ steps.check_languages.outputs.uses_java == 'true' }}
156211 with :
157212 scan-type : " fs"
158- scan-ref : " . "
213+ scan-ref : " pom.xml "
159214 severity : " CRITICAL,HIGH"
160215 scanners : " license"
161216 format : " json"
162- output : " license_scan .json"
217+ output : " license_scan_java .json"
163218 exit-code : " 1"
164219 list-all-pkgs : " true"
165220 - name : Show license scan output
166221 if : always()
167- run : cat license_scan.json
222+ run : |
223+ cat license_scan_python.json
224+ cat license_scan_node.json
225+ cat license_scan_go.json
226+ cat license_scan_java.json
168227
169228 - name : Run code lint
170229 run : make lint
@@ -185,8 +244,8 @@ jobs:
185244 run : make test
186245
187246 - name : Generate and check python SBOMs
188- if : ${{ steps.check_poetry .outputs.uses_poetry == 'true' }}
189- uses : aquasecurity/trivy-action@0.33.1
247+ if : ${{ steps.check_languages .outputs.uses_poetry == 'true' }}
248+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
190249 with :
191250 scan-type : " fs"
192251 scan-ref : " poetry.lock"
@@ -195,22 +254,59 @@ jobs:
195254 format : " table"
196255 output : " dependency_results_python.txt"
197256 exit-code : " 1"
257+ - name : Generate and check node SBOMs
258+ if : ${{ steps.check_languages.outputs.uses_node == 'true' }}
259+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
260+ with :
261+ scan-type : " fs"
262+ scan-ref : " package-lock.json"
263+ severity : " CRITICAL,HIGH"
264+ scanners : " vuln"
265+ format : " table"
266+ output : " dependency_results_node.txt"
267+ exit-code : " 1"
268+ - name : Generate and check java SBOMs
269+ if : ${{ steps.check_languages.outputs.uses_java == 'true' }}
270+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
271+ with :
272+ scan-type : " fs"
273+ scan-ref : " pom.xml"
274+ severity : " CRITICAL,HIGH"
275+ scanners : " vuln"
276+ format : " table"
277+ output : " dependency_results_java.txt"
278+ exit-code : " 1"
279+ - name : Generate and check golang SBOMs
280+ if : ${{ steps.check_languages.outputs.uses_go == 'true' }}
281+ uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
282+ with :
283+ scan-type : " fs"
284+ scan-ref : " go.sum"
285+ severity : " CRITICAL,HIGH"
286+ scanners : " vuln"
287+ format : " table"
288+ output : " dependency_results_go.txt"
289+ exit-code : " 1"
198290 - name : Show scan output
199291 if : always()
200- run : cat dependency_results_python.txt
292+ run : |
293+ cat dependency_results_python.txt
294+ cat dependency_results_node.txt
295+ cat dependency_results_java.txt
296+ cat dependency_results_go.txt
201297 - name : " check is SONAR_TOKEN exists"
202298 env :
203299 super_secret : ${{ secrets.SONAR_TOKEN }}
204300 if : ${{ env.super_secret != '' && inputs.run_sonar == true }}
205301 run : echo "SONAR_TOKEN_EXISTS=true" >> "$GITHUB_ENV"
206302
207303 - name : Run SonarQube analysis
208- if : ${{ steps.check_java .outputs.uses_java == 'true' && env.SONAR_TOKEN_EXISTS == 'true' }}
304+ if : ${{ steps.check_languages .outputs.uses_java == 'true' && env.SONAR_TOKEN_EXISTS == 'true' }}
209305 run : mvn sonar:sonar -Dsonar.login=${{ secrets.SONAR_TOKEN }}
210306
211307 - name : SonarCloud Scan
212308 uses : SonarSource/sonarqube-scan-action@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9
213- if : ${{ steps.check_java .outputs.uses_java == 'false' && env.SONAR_TOKEN_EXISTS == 'true' }}
309+ if : ${{ steps.check_languages .outputs.uses_java == 'false' && env.SONAR_TOKEN_EXISTS == 'true' }}
214310 env :
215311 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
216312 SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
0 commit comments