feat: Semaine 13
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
stages:
|
||||
- install
|
||||
- scan
|
||||
- test
|
||||
- build&deploy
|
||||
|
||||
# Install JavaScript dependencies
|
||||
|
||||
frontend_install:
|
||||
stage: install
|
||||
image: node:latest
|
||||
script:
|
||||
- npm install
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- package-lock.json
|
||||
paths:
|
||||
- node_modules/
|
||||
|
||||
# Scan project (linter & security)
|
||||
|
||||
eslint_1_4:
|
||||
stage: scan
|
||||
image: node:lts
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- package-lock.json
|
||||
paths:
|
||||
- node_modules/
|
||||
script:
|
||||
- npm run lint
|
||||
|
||||
variables:
|
||||
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
|
||||
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
|
||||
sonarcloud-check:
|
||||
stage: scan
|
||||
image:
|
||||
name: sonarsource/sonar-scanner-cli:latest
|
||||
entrypoint: [""]
|
||||
cache:
|
||||
- key: "${CI_JOB_NAME}"
|
||||
paths:
|
||||
- .sonar/cache
|
||||
- key:
|
||||
files:
|
||||
- package-lock.json
|
||||
paths:
|
||||
- node_modules/
|
||||
script:
|
||||
- sonar-scanner
|
||||
|
||||
# Test project (functiunality & charge)
|
||||
|
||||
jest_3_4:
|
||||
stage: test
|
||||
image: node:lts
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- package-lock.json
|
||||
paths:
|
||||
- node_modules/
|
||||
dependencies:
|
||||
- sonarcloud-check
|
||||
script:
|
||||
- npm run test
|
||||
|
||||
cypress_4_4:
|
||||
stage: test
|
||||
image: cypress/browsers:latest
|
||||
dependencies:
|
||||
- jest_3_4
|
||||
script:
|
||||
- npm install
|
||||
- npm run dev &
|
||||
- npx cypress run --browser firefox --spec "cypress/e2e/experience.cy.js"
|
||||
- npx cypress run --browser chrome --spec "cypress/e2e/experience.cy.js"
|
||||
|
||||
|
||||
# Build & Deploy project
|
||||
|
||||
pages:
|
||||
stage: build&deploy
|
||||
image: node:lts
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- package-lock.json
|
||||
paths:
|
||||
- node_modules/
|
||||
script:
|
||||
- npm run build
|
||||
- mv build public
|
||||
artifacts:
|
||||
paths:
|
||||
# The folder that contains the files to be exposed at the Page URL
|
||||
- public
|
||||
rules:
|
||||
# This ensures that only pushes to the default branch will trigger
|
||||
# a pages deploy
|
||||
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "preprod"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user