Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.08 KiB
Newer Older
image: node:alpine # Much smaller than other variants, faster and more resource effective
Andreas's avatar
Andreas committed

Andreas's avatar
Andreas committed
cache:
  key: "${CI_COMMIT_REF_SLUG}" # Branch-specific cache keys to have separate caches across branches.
Andreas's avatar
Andreas committed
  paths:
    - node_modules/
Andreas's avatar
Andreas committed
    - build/
Andreas's avatar
Andreas committed

Andreas's avatar
Andreas committed
stages:
  - install
  - build
Andreas's avatar
Andreas committed
  - lint
install_dependencies:
Andreas's avatar
Andreas committed
  stage: install
Andreas's avatar
Andreas committed
    - npm ci
Andreas's avatar
Andreas committed
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
        - node_modules/
    policy: push
Andreas's avatar
Andreas committed

build_project:
Andreas's avatar
Andreas committed
  stage: build
  script:
Andreas's avatar
Andreas committed
    - npm ci
Andreas's avatar
Andreas committed
  dependencies:
    - install_dependencies
Andreas's avatar
Andreas committed
  cache:
    key: "${CI_COMMIT_REF_SLUG}"
    paths:
      - node_modules/
    policy: pull

vitest_unit-tests:
  stage: test
  script:
Andreas's avatar
Andreas committed
    - npm ci
Andreas's avatar
Andreas committed
  dependencies:
    - install_dependencies
Andreas's avatar
Andreas committed
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
        - node_modules/
    policy: pull

eslint_run-lint:
Andreas's avatar
Andreas committed
  stage: lint
Andreas's avatar
Andreas committed
  script:
    - npm ci
Andreas's avatar
Andreas committed
    - npm run lint
  dependencies:
    - install_dependencies
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
        - node_modules/
Andreas's avatar
Andreas committed
  allow_failure: true