Skip to content
Snippets Groups Projects

Cicd

Merged Erik Borgeteien Hansen requested to merge cicd into main
1 file
+ 40
44
Compare changes
  • Side-by-side
  • Inline
+ 40
44
# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
image: node:lts
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
stages: # List of stages for jobs, and their order of execution
stages:
- build
- test
# - deploy
image: node:16
# These folders are cached between builds
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
# Default cache directory from https://classic.yarnpkg.com/en/docs/install-ci/#gitlab.
- node_modules/
# Enables git-lab CI caching. Both .cache and public must be cached, otherwise builds will fail.
- .cache/
- public/
install_dependencies_job: # This job runs in the build stage, which runs first.
npm:install:
stage: build
script:
- echo "Installing dependencies..."
- npm install
- echo "Dependencies installed."
artifacts:
paths:
- node_modules/
lint-test-job: # This job also runs in the test stage.
stage: test # It can run at the same time as unit-test-job (in parallel).
script:
- echo "Linting the code..."
- npm run lint
- echo "Code-linting complete."
artifacts:
paths:
- node_modules/
- npm ci
unit-test-job: # This job runs in the test stage.
stage: test # It only starts when the job in the build stage completes successfully.
test:unit:
stage: test
needs: ["npm:install"]
script:
- echo "Running unit tests..."
- npm run test:unit -- --coverage
- echo "Unit tests complete."
artifacts:
paths:
- node_modules/
- npm ci
- npm run test:unit
#test:coverage:
# stage: test
# needs: ["npm:install"]
# script:
# - ./node_modules/.bin/gatsby info
# rules:
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
# - if: $CI_MERGE_REQUEST_ID
#pages:
# stage: deploy
# needs:
# - npm:install
# - test:unit
# - test:gatsby
# script:
# - ./node_modules/.bin/gatsby build --prefix-paths
# artifacts:
# paths:
# - public
# rules:
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
Loading