From d261177d685a8591c3f0665698b947a1146a61d0 Mon Sep 17 00:00:00 2001 From: Erik Borgeteien Hansen <erik@erikbhan.no> Date: Wed, 27 Apr 2022 11:06:32 +0200 Subject: [PATCH] try something new --- .gitlab-ci.yml | 148 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 135 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dcab614..08a25e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,17 +1,139 @@ -# -# https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml -# -image: node:latest +image: node:lts-alpine -# Cache modules in between jobs -cache: - key: $CI_COMMIT_REF_SLUG - paths: - - .npm/ +stages: + - install + - build + - quality + # - deploy + - audit -before_script: - - npm ci --cache .npm --prefer-offline +variables: + npm_config_cache: "$CI_PROJECT_DIR/.npm" -test_async: +install: + stage: install script: - - npm run test:unit \ No newline at end of file + - npm ci + artifacts: + name: "artifacts" + untracked: true + expire_in: 60 mins + paths: + - .npm/ + - node_modules/ + +build: + stage: build + script: + - CI=false npm run build + artifacts: + paths: + - build + expire_in: 60 mins + dependencies: + - install + +linting: + stage: quality + script: + - npm run lint + dependencies: + - install + +test:unit: + stage: quality + script: + - npm run test:unit + dependencies: + - install + coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/ + +# test:e2e: +# stage: quality +# image: cypress/browsers:chrome69 +# dependencies: +# - install +# - build +# script: +# - npm run e2e:ci +# artifacts: +# paths: +# - cypress/screenshots +# - cypress/videos +# expire_in: 1 day + +# .deploy: +# stage: deploy +# before_script: +# - npm install -g firebase-tools +# - (if [ -d "build" ]; then echo ok; else exit "no build folder, try to run pipeline again"; fi); +# script: +# - firebase deploy --token $FIREBASE_TOKEN --non-interactive --only hosting:$ENV +# when: manual + +# deploy_to_alpha: +# environment: +# name: alpha +# url: $ALPHA_URL +# extends: .deploy +# variables: +# ENV: alpha +# except: +# - develop +# - main + +# deploy_to_beta: +# environment: +# name: beta +# url: $BETA_URL +# extends: .deploy +# variables: +# ENV: beta +# only: +# - develop + +# deploy_to_prod: +# environment: +# name: prod +# url: $PROD_URL +# extends: .deploy +# variables: +# ENV: prod +# only: +# refs: +# - main + +.lighthouse: + image: markhobson/node-chrome + stage: audit + before_script: + - npm i -g lighthouse + script: + - lighthouse --chrome-flags="--headless --no-sandbox" $LIGHTHOUSE_TEST_URL --output html --output-path ./report.html + artifacts: + paths: + - ./report.html + expire_in: 1 week + when: manual + +# run_lighthouse_alpha: +# extends: .lighthouse +# variables: +# LIGHTHOUSE_TEST_URL: $ALPHA_URL +# except: +# - develop +# - main + +# run_lighthouse_beta: +# extends: .lighthouse +# variables: +# LIGHTHOUSE_TEST_URL: $BETA_URL +# only: +# - develop + +run_lighthouse_prod: + extends: .lighthouse + variables: + LIGHTHOUSE_TEST_URL: $PROD_URL + only: + - main -- GitLab