all repos — caroster @ a5cf0e5ec409bf5e3c76c95bccb10adaad3758e2

[Octree] Group carpool to your event https://caroster.io

.gitlab-ci.yml (view raw)

  1stages:
  2  - test
  3  - build
  4  - deploy
  5  - analyze
  6
  7# # CI variables scopées:
  8# # - NPM_REGISTRY: URL du NPM registry à utiliser (default: https://npm-8ee.hidora.com/)
  9# Test:
 10#   stage: test
 11#   coverage: /All\sfiles.*?\s+(\d+.\d+)/
 12#   image: node:current-alpine3.12
 13#   rules:
 14#     - if: "$CI_PIPELINE_SOURCE =~ merge_request_event"
 15#     - if: '$CI_COMMIT_REF_NAME == "master"'
 16#   script:
 17#     - npm set registry ${NPM_REGISTRY:-https://npm-8ee.hidora.com/}
 18#     - npm ci
 19#     - npm run test
 20#   cache:
 21#     key: "$CI_COMMIT_REF_SLUG"
 22#     paths:
 23#       - node_modules/
 24#       - ~/.npm
 25
 26Build:
 27  stage: build
 28  image: docker:stable-git
 29  rules:
 30    - if: '$CI_COMMIT_REF_NAME == "master"'
 31  script:
 32    - docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p$CI_REGISTRY_PASSWORD
 33    - docker pull $CI_REGISTRY_IMAGE:latest || true
 34    - docker build --cache-from $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA} ${DIRECTORY:-.}
 35    - docker push $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}
 36    - docker tag $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA} $CI_REGISTRY_IMAGE:latest
 37    - docker push $CI_REGISTRY_IMAGE:latest
 38
 39.deploy:
 40  stage: deploy
 41  image: git.octree.ch:4567/o/infra/templates/ci/kubectl
 42  variables:
 43    HELM_EXPERIMENTAL_OCI: 1
 44  script:
 45    - helm registry login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
 46    - helm chart pull git.octree.ch:4567/o/charts/strapi:$STRAPI_CHART_VERSION
 47    - helm chart export git.octree.ch:4567/o/charts/strapi:$STRAPI_CHART_VERSION -d charts
 48    - >-
 49      helm upgrade --install --create-namespace $CI_PROJECT_NAME charts/*
 50      -n $ENV_NAMESPACE --cleanup-on-fail
 51      --set strapi.image=$CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}
 52      --set strapi.host=$CI_ENVIRONMENT_URL
 53      -f "$ENV_CONFIG"      
 54
 55# CI variables:
 56# - STRAPI_CHART_VERSION: Version du chart Strapi à utiliser
 57# - ENV_CONFIG [scopée]: Fichier de configuration values.yaml (requis)
 58Deploy to Test:
 59  extends: .deploy
 60  environment:
 61    name: test
 62    url: "https://$CI_PROJECT_NAME.dev.octr.ee"
 63  rules:
 64    - if: '$CI_COMMIT_REF_NAME == "master"'
 65  variables:
 66    ENV_NAMESPACE: $CI_PROJECT_NAME-$CI_ENVIRONMENT_SLUG
 67
 68# CI variables:
 69# - STRAPI_CHART_VERSION: Version du chart Strapi à utiliser
 70# - ENV_URL [scopée]: URL de l'environnement (requis)
 71# - ENV_CONFIG [scopée]: Fichier de configuration values.yaml (requis)
 72# - ENV_NAMESPACE [scopée]: Namespace Kubernetes (default: default)
 73Deploy to Staging:
 74  extends: .deploy
 75  environment:
 76    name: staging
 77    url: $ENV_URL
 78  rules:
 79    - if: "$CI_COMMIT_TAG =~ /v.*-rc$/"
 80
 81# CI variables:
 82# - STRAPI_CHART_VERSION: Version du chart Strapi à utiliser
 83# - ENV_URL [scopée]: URL de l'environnement (requis)
 84# - ENV_CONFIG [scopée]: Fichier de configuration values.yaml (requis)
 85# - ENV_NAMESPACE [scopée]: Namespace Kubernetes (default: default)
 86Deploy to Production:
 87  extends: .deploy
 88  environment:
 89    name: production
 90    url: $ENV_URL
 91  rules:
 92    - if: "$CI_COMMIT_TAG =~ /v.*[^r][^c]$/"
 93      when: manual
 94
 95# CI variables:
 96# - SONAR_URL: URL de SonarQube (requis)
 97# - SONAR_LOGIN: Login pour SonarQube (requis)
 98# - SONAR_SOURCE: Dossier à scanner (default: .)
 99Code Quality:
100  stage: analyze
101  image: ciricihq/gitlab-sonar-scanner
102  rules:
103    - if: '$CI_PIPELINE_SOURCE =~ "schedule"'
104  script:
105    - >-
106      sonar-scanner -Dsonar.host.url=$SONAR_URL 
107      -Dsonar.projectKey=$CI_PROJECT_NAME-$CI_ENVIRONMENT_SLUG 
108      -Dsonar.login=$SONAR_LOGIN -Dsonar.sources=${SONAR_SOURCE:-.}