Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.39 KiB
Newer Older
image: node:lts-alpine
stages:
  - install
  - quality
Erik Borgeteien Hansen's avatar
Erik Borgeteien Hansen committed
  - build
  # - deploy
  - audit
variables:
  npm_config_cache: "$CI_PROJECT_DIR/.npm"
install:
  stage: install
  script:
    - 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