diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7c03db5..7e9067d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,7 +38,7 @@ jobs: - name: Check run: ./gradlew check - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() with: name: integration-test-logs diff --git a/.github/workflows/scheduled-snyk-docker.yaml b/.github/workflows/scheduled-snyk-docker.yaml new file mode 100644 index 0000000..98b92fe --- /dev/null +++ b/.github/workflows/scheduled-snyk-docker.yaml @@ -0,0 +1,40 @@ +name: Snyk scheduled Docker base image scan + +on: + schedule: + - cron: '0 3 * * 1' + workflow_dispatch: + +env: + DOCKER_IMAGE: radarbase/radar-output-restructure + +jobs: + security: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Run Snyk to check for vulnerabilities + continue-on-error: true # To make sure that SARIF upload gets called + uses: snyk/actions/docker@master + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + image: ${{ env.DOCKER_IMAGE }} + # 'exclude-app-vulns' only tests vulnerabilities in the base image. + # Code base vulnerabilities are tested the scheduled-snyk.yaml action. + args: >- + --file=Dockerfile + --fail-on=upgradable + --severity-threshold=high + --policy-path=.snyk + --exclude-app-vulns + --org=radar-base + --sarif-file-output=snyk.sarif + + # Detected vulnerabilities will appear on Github in Security->Code_scanning_alerts tab + - name: Upload result to GitHub Code Scanning + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: snyk.sarif diff --git a/.github/workflows/scheduled-snyk.yaml b/.github/workflows/scheduled-snyk.yaml new file mode 100644 index 0000000..59de425 --- /dev/null +++ b/.github/workflows/scheduled-snyk.yaml @@ -0,0 +1,34 @@ +name: Snyk scheduled code base scan + +on: + schedule: + - cron: '0 2 * * 1' + workflow_dispatch: + +jobs: + security: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Run Snyk to check for vulnerabilities + uses: snyk/actions/gradle-jdk17@master + continue-on-error: true # To make sure that SARIF upload gets called + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + args: >- + --all-projects + --configuration-matching='^runtimeClasspath$' + --fail-on=upgradable + --severity-threshold=high + --policy-path=.snyk + --org=radar-base + --sarif-file-output=snyk.sarif + + # Detected vulnerabilities will appear on Github in Security->Code_scanning_alerts tab + - name: Upload result to GitHub Code Scanning + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: snyk.sarif diff --git a/.github/workflows/scheduled_snyk.yaml b/.github/workflows/scheduled_snyk.yaml deleted file mode 100644 index 5b50fbf..0000000 --- a/.github/workflows/scheduled_snyk.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: Snyk scheduled test -on: - schedule: - - cron: '0 2 * * 1' - push: - branches: - - master - -jobs: - security: - runs-on: ubuntu-latest - env: - REPORT_FILE: test.json - steps: - - uses: actions/checkout@v3 - - uses: snyk/actions/setup@master - with: - snyk-version: v1.1032.0 - - - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 17 - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Run Snyk - env: - SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - run: > - snyk test - --configuration-matching='^runtimeClasspath$' - --fail-on=upgradable - --json-file-output=${{ env.REPORT_FILE }} - --org=radar-base - --policy-path=$PWD/.snyk - - - name: Report new vulnerabilities - uses: thehyve/report-vulnerability@master - if: success() || failure() - with: - report-file: ${{ env.REPORT_FILE }} - env: - TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/snyk.yaml b/.github/workflows/snyk.yaml index 2fe88dc..28a9569 100644 --- a/.github/workflows/snyk.yaml +++ b/.github/workflows/snyk.yaml @@ -1,4 +1,5 @@ -name: Snyk test +name: Snyk test on PR commits + on: pull_request: branches: @@ -8,28 +9,19 @@ on: jobs: security: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v3 - - uses: snyk/actions/setup@master - with: - snyk-version: v1.1032.0 - - - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 17 - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - name: Run Snyk to check for vulnerabilities + uses: snyk/actions/gradle-jdk17@master env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - run: > - snyk test - --configuration-matching='^runtimeClasspath$' - --org=radar-base - --policy-path=$PWD/.snyk - --all-projects - --severity-threshold=high - --fail-on=upgradable + with: + args: >- + --all-projects + --configuration-matching='^runtimeClasspath$' + --fail-on=upgradable + --severity-threshold=high + --policy-path=.snyk + --org=radar-base