Skip to content

Commit

Permalink
Apply automated pipelines for external dependencies (#500)
Browse files Browse the repository at this point in the history
* Create snyk-security.yml

* Create sonarcloud.yml

* Update dependabot.yml
  • Loading branch information
1AhmedYasser authored Apr 24, 2024
1 parent d99b976 commit e27fb85
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 7 deletions.
9 changes: 2 additions & 7 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,7 @@ updates:
- package-ecosystem: "npm"
directory: "/GUI"
schedule:
time: "08:00"
time: "00:00"
interval: "daily"
allow:
- dependency-name: "@buerokratt-ria/header"
- dependency-name: "@buerokratt-ria/styles"
- dependency-name: "@buerokratt-ria/menu"
open-pull-requests-limit: 10
open-pull-requests-limit: 50
target-branch: "dev"
versioning-strategy: "increase"
65 changes: 65 additions & 0 deletions .github/workflows/snyk-security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Snyk Security

on:
push:
branches: ["dev"]
schedule:
- cron: '0 0 * * *'

permissions:
contents: read

jobs:
snyk:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Snyk CLI to check for security issues
# Snyk can be used to break the build when it detects security issues.
# In this case we want to upload the SAST issues to GitHub Code Scanning
uses: snyk/actions/setup@806182742461562b67788a64410098c9d9b96adb

# Application dependencies
- uses: actions/setup-node@v3
with:
node-version: 20

env:
# This is where you will need to introduce the Snyk API token created with your Snyk account
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

# Authenticate Snyk
# Use || true to not fail the pipeline
- name: Snyk Auth
run: snyk auth ${{ secrets.SNYK_TOKEN }}

# Runs Snyk Code (SAST) analysis and uploads result into GitHub.
# Use || true to not fail the pipeline
- name: Snyk Code test
run: snyk code test --sarif > snyk-code.sarif || true

# Install Dependencies
- name: Install Dependencies
run: cd GUI/ && npm install --legacy-peer-deps

# Runs Snyk Open Source (SCA) analysis and uploads result to Snyk.
- name: Snyk Open Source monitor
run: snyk monitor --all-projects

# Build the docker image for testing
- name: Build a Docker image
run: cd GUI/ && docker build -f Dockerfile.dev -t gui .

# # Runs Snyk Container (Container and SCA) analysis and uploads result to Snyk.
- name: Snyk Container monitor
run: snyk container monitor gui

# Push the Snyk Code results into GitHub Code Scanning tab
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk-code.sarif
41 changes: 41 additions & 0 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: SonarCloud analysis

on:
push:
branches: [ "dev" ]
schedule:
- cron: '0 0 * * *'
workflow_dispatch:

permissions:
pull-requests: read # allows SonarCloud to decorate PRs with analysis results

jobs:
Analysis:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Analyze with SonarCloud
# uses: SonarSource/sonarcloud-github-action@de2e56b42aa84d0b1c5b622644ac17e505c9a049
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret)
with:
# Additional arguments for the sonarcloud scanner
args:
# Unique keys of your project and organization. You can find them in SonarCloud > Information (bottom-left menu)
# mandatory
-Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }}
-Dsonar.organization=${{ secrets.SONAR_ORGANIZATION }}
# Comma-separated paths to directories containing main source files.
#-Dsonar.sources= # optional, default is project base directory
# When you need the analysis to take place in a directory other than the one from which it was launched
#-Dsonar.projectBaseDir= # optional, default is .
# Comma-separated paths to directories containing test source files.
#-Dsonar.tests= # optional. For more info about Code Coverage, please refer to https://docs.sonarcloud.io/enriching/test-coverage/overview/
# Adds more detail to both client and server-side analysis logs, activating DEBUG mode for the scanner, and adding client-side environment variables and system properties to the server-side log of analysis report processing.
#-Dsonar.verbose= # optional, default is false

0 comments on commit e27fb85

Please sign in to comment.