2024-02-23 19:47:23 +01:00
|
|
|
name: Scan
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- "main"
|
|
|
|
- "rc"
|
|
|
|
- "hotfix-rc"
|
2024-03-18 17:42:06 +01:00
|
|
|
pull_request_target:
|
|
|
|
types: [opened, synchronize]
|
2024-02-23 19:47:23 +01:00
|
|
|
|
|
|
|
jobs:
|
2024-03-18 17:42:06 +01:00
|
|
|
check-run:
|
|
|
|
name: Check PR run
|
|
|
|
uses: bitwarden/gh-actions/.github/workflows/check-run.yml@main
|
|
|
|
|
2024-02-23 19:47:23 +01:00
|
|
|
sast:
|
|
|
|
name: SAST scan
|
|
|
|
runs-on: ubuntu-22.04
|
2024-03-18 17:42:06 +01:00
|
|
|
needs: check-run
|
2024-02-23 19:47:23 +01:00
|
|
|
permissions:
|
2024-03-27 17:35:24 +01:00
|
|
|
contents: read
|
|
|
|
pull-requests: write
|
2024-02-23 19:47:23 +01:00
|
|
|
security-events: write
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Check out repo
|
2024-07-10 21:47:20 +02:00
|
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
2024-03-18 17:42:06 +01:00
|
|
|
with:
|
|
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
2024-02-23 19:47:23 +01:00
|
|
|
|
|
|
|
- name: Scan with Checkmarx
|
2024-08-13 19:33:53 +02:00
|
|
|
uses: checkmarx/ast-github-action@1fe318de2993222574e6249750ba9000a4e2a6cd # 2.0.33
|
2024-02-23 19:47:23 +01:00
|
|
|
env:
|
2024-03-18 17:42:06 +01:00
|
|
|
INCREMENTAL: "${{ contains(github.event_name, 'pull_request') && '--sast-incremental' || '' }}"
|
2024-02-23 19:47:23 +01:00
|
|
|
with:
|
|
|
|
project_name: ${{ github.repository }}
|
|
|
|
cx_tenant: ${{ secrets.CHECKMARX_TENANT }}
|
|
|
|
base_uri: https://ast.checkmarx.net/
|
|
|
|
cx_client_id: ${{ secrets.CHECKMARX_CLIENT_ID }}
|
|
|
|
cx_client_secret: ${{ secrets.CHECKMARX_SECRET }}
|
2024-04-03 20:13:49 +02:00
|
|
|
additional_params: |
|
|
|
|
--report-format sarif \
|
|
|
|
--filter "state=TO_VERIFY;PROPOSED_NOT_EXPLOITABLE;CONFIRMED;URGENT" \
|
|
|
|
--output-path . ${{ env.INCREMENTAL }}
|
2024-02-23 19:47:23 +01:00
|
|
|
|
|
|
|
- name: Upload Checkmarx results to GitHub
|
2024-08-26 22:47:52 +02:00
|
|
|
uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
|
2024-02-23 19:47:23 +01:00
|
|
|
with:
|
|
|
|
sarif_file: cx_result.sarif
|
|
|
|
|
|
|
|
quality:
|
|
|
|
name: Quality scan
|
|
|
|
runs-on: ubuntu-22.04
|
2024-03-18 17:42:06 +01:00
|
|
|
needs: check-run
|
2024-03-27 17:35:24 +01:00
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
pull-requests: write
|
2024-02-23 19:47:23 +01:00
|
|
|
|
|
|
|
steps:
|
2024-07-10 19:08:28 +02:00
|
|
|
- name: Set up JDK 17
|
2024-08-13 19:33:53 +02:00
|
|
|
uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
|
2024-07-10 19:08:28 +02:00
|
|
|
with:
|
|
|
|
java-version: 17
|
|
|
|
distribution: "zulu"
|
|
|
|
|
2024-02-23 19:47:23 +01:00
|
|
|
- name: Check out repo
|
2024-07-10 21:47:20 +02:00
|
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
2024-02-29 21:40:14 +01:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2024-03-18 17:42:06 +01:00
|
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
2024-02-23 19:47:23 +01:00
|
|
|
|
2024-07-10 19:08:28 +02:00
|
|
|
- name: Set up .NET
|
|
|
|
uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
|
|
|
|
|
|
|
|
- name: Install SonarCloud scanner
|
|
|
|
run: dotnet tool install dotnet-sonarscanner -g
|
|
|
|
|
2024-02-23 19:47:23 +01:00
|
|
|
- name: Scan with SonarCloud
|
|
|
|
env:
|
|
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
2024-07-10 19:08:28 +02:00
|
|
|
run: |
|
|
|
|
dotnet-sonarscanner begin /k:"${{ github.repository_owner }}_${{ github.event.repository.name }}" \
|
2024-07-16 18:01:12 +02:00
|
|
|
/d:sonar.test.inclusions=test/,bitwarden_license/test/ \
|
|
|
|
/d:sonar.exclusions=test/,bitwarden_license/test/ \
|
2024-07-10 19:08:28 +02:00
|
|
|
/o:"${{ github.repository_owner }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" \
|
|
|
|
/d:sonar.host.url="https://sonarcloud.io"
|
|
|
|
dotnet build
|
|
|
|
dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
|