From cfeb55aaa4829debeaa0449e7973dc28eeda4ce4 Mon Sep 17 00:00:00 2001 From: "janis.streib" <janis.streib@kit.edu> Date: Fri, 13 May 2022 18:02:47 +0200 Subject: [PATCH] Configure Dependency Scanning in `.gitlab-ci.yml`, creating this file if it does not already exist --- .gitlab-ci.yml | 182 ++++++++++++++++++++++++++----------------------- 1 file changed, 97 insertions(+), 85 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ac402689..4ee29e037 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,119 +1,131 @@ +# You can override the included template(s) by including variable overrides +# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings +# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings +# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings +# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings +# Note that environment variables can be set in several places +# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence default: - image: debian-bullseye:latest - tags: - - netvs + image: debian-bullseye:latest + tags: + - netvs cache: key: files: - - frontend/package-lock.json + - frontend/package-lock.json paths: - - frontend/.npm/ + - frontend/.npm/ before_script: - ## dependencies - - - apt-get update -y - - command -v curl || apt-get -y install curl - - command -v git || apt-get -y install git - - apt-get -y install apt-transport-https gnupg2 - - test -e /etc/apt/sources.list.d/nodesource.list || curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - - - test -e /etc/apt/sources.list.d/nodesource.list || echo 'deb https://deb.nodesource.com/node_15.x bullseye main' > /etc/apt/sources.list.d/nodesource.list - - 'command -v npm || (apt-get update -y && apt-get install -y nodejs)' - - 'command -v pip3 || (apt-get update -y && apt-get install -y python3-pip)' - - pip3 install git+https://git.scc.kit.edu/scc-net/net-suite/api-generator.git@master#egg=net-api-generator - - cd frontend/ - - echo "${CI_COMMIT_SHORT_SHA},Job ID ${CI_JOB_ID}@${CI_RUNNER_DESCRIPTION}" - - sed "s&__LOCAL_BUILD__&${CI_COMMIT_SHORT_SHA},Job ID ${CI_JOB_ID}@${CI_RUNNER_DESCRIPTION}&g" netvs.config.js.example > netvs.config.js - - sed -i "s&__JOB_ID__&${CI_JOB_ID}&g" netvs.config.js - - sed -i "s&__COMMIT_SHORT_SHA__&${CI_COMMIT_SHORT_SHA}&g" netvs.config.js - - sed -i "s&__JOB_ID__&${CI_JOB_ID}&g" public/version.json - - sed -i "s&__COMMIT_SHORT_SHA__&${CI_COMMIT_SHORT_SHA}&g" public/version.json - - if [ $CI_JOB_STAGE != "deploy" ]; then npm ci --cache .npm --prefer-offline; fi - - cd .. - - export API_VERSION=3.2 - +- apt-get update -y +- command -v curl || apt-get -y install curl +- command -v git || apt-get -y install git +- apt-get -y install apt-transport-https gnupg2 +- test -e /etc/apt/sources.list.d/nodesource.list || curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key + | apt-key add - +- test -e /etc/apt/sources.list.d/nodesource.list || echo 'deb https://deb.nodesource.com/node_15.x + bullseye main' > /etc/apt/sources.list.d/nodesource.list +- command -v npm || (apt-get update -y && apt-get install -y nodejs) +- command -v pip3 || (apt-get update -y && apt-get install -y python3-pip) +- pip3 install git+https://git.scc.kit.edu/scc-net/net-suite/api-generator.git@master#egg=net-api-generator +- cd frontend/ +- echo "${CI_COMMIT_SHORT_SHA},Job ID ${CI_JOB_ID}@${CI_RUNNER_DESCRIPTION}" +- sed "s&__LOCAL_BUILD__&${CI_COMMIT_SHORT_SHA},Job ID ${CI_JOB_ID}@${CI_RUNNER_DESCRIPTION}&g" + netvs.config.js.example > netvs.config.js +- sed -i "s&__JOB_ID__&${CI_JOB_ID}&g" netvs.config.js +- sed -i "s&__COMMIT_SHORT_SHA__&${CI_COMMIT_SHORT_SHA}&g" netvs.config.js +- sed -i "s&__JOB_ID__&${CI_JOB_ID}&g" public/version.json +- sed -i "s&__COMMIT_SHORT_SHA__&${CI_COMMIT_SHORT_SHA}&g" public/version.json +- if [ $CI_JOB_STAGE != "deploy" ]; then npm ci --cache .npm --prefer-offline; fi +- cd .. +- export API_VERSION=3.2 stages: - - build - - lint - - deploy - +- build +- lint +- deploy frontend-build: - stage: build - script: - - cd frontend/ - - if [ $CI_COMMIT_BRANCH == "devel" ]; then export NETDB_ENDPOINT="${NETDB_DEVEL_ENDPOINT}"; fi - - if [ $CI_COMMIT_BRANCH == "devel" ]; then net-api-generator --version=${API_VERSION} openapi --default_endpoint=devel > public/api.yml; else net-api-generator --version=${API_VERSION} openapi --default_endpoint=test > public/api.yml; fi - - net-api-generator --version=${API_VERSION} es-webpack - - npm run build - artifacts: - expire_in: 7 days - paths: - - frontend/dist/ - - frontend/src/api-services.gen/ - needs: [] + stage: build + script: + - cd frontend/ + - if [ $CI_COMMIT_BRANCH == "devel" ]; then export NETDB_ENDPOINT="${NETDB_DEVEL_ENDPOINT}"; + fi + - if [ $CI_COMMIT_BRANCH == "devel" ]; then net-api-generator --version=${API_VERSION} + openapi --default_endpoint=devel > public/api.yml; else net-api-generator --version=${API_VERSION} + openapi --default_endpoint=test > public/api.yml; fi + - net-api-generator --version=${API_VERSION} es-webpack + - npm run build + artifacts: + expire_in: 7 days + paths: + - frontend/dist/ + - frontend/src/api-services.gen/ + needs: [] frontend-lint: - stage: lint - script: - - cd frontend/ - - npm run lint - allow_failure: true - needs: [] - + stage: lint + script: + - cd frontend/ + - npm run lint + allow_failure: true + needs: [] frontend-audit: - stage: lint - script: - - cd frontend/ - - npm audit --audit-level high - allow_failure: true - needs: [] - + stage: lint + script: + - cd frontend/ + - npm audit --audit-level high + allow_failure: true + needs: [] deploy_devel: stage: deploy script: - - 'command -v ssh-agent || ( apt-get install openssh-client -y )' - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts - - ssh net-suite-devel@netvs-devel.scc.kit.edu "${CI_PIPELINE_ID}" + - command -v ssh-agent || ( apt-get install openssh-client -y ) + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - ssh net-suite-devel@netvs-devel.scc.kit.edu "${CI_PIPELINE_ID}" environment: name: devel url: https://netvs-devel.scc.kit.edu only: - devel - needs: ["frontend-build"] + needs: + - frontend-build deploy_test: stage: deploy script: - - 'command -v ssh-agent || ( apt-get install openssh-client -y )' - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts - - ssh www-net-suite@netvs-test.scc.kit.edu "${CI_PIPELINE_ID}" + - command -v ssh-agent || ( apt-get install openssh-client -y ) + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - ssh www-net-suite@netvs-test.scc.kit.edu "${CI_PIPELINE_ID}" environment: name: test url: https://netvs-test.scc.kit.edu only: - main - needs: ["frontend-build"] + needs: + - frontend-build deploy_prod: stage: deploy script: - - 'command -v ssh-agent || ( apt-get install openssh-client -y )' - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts - - ssh www-net-suite@netvs.scc.kit.edu "${CI_PIPELINE_ID}" + - command -v ssh-agent || ( apt-get install openssh-client -y ) + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - ssh www-net-suite@netvs.scc.kit.edu "${CI_PIPELINE_ID}" environment: name: prod url: https://netvs.scc.kit.edu only: - main - needs: ["frontend-build"] + needs: + - frontend-build +include: +- template: Security/Dependency-Scanning.gitlab-ci.yml -- GitLab