From c8c1fc389325f4bd99252c692af8ebd6d0555d69 Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Thu, 21 Feb 2019 13:59:11 +0100 Subject: [PATCH] Rename env file, add docker image registry management, staging build and deploy on manual trigger --- .gitlab-ci.yml | 82 ++++++++++--------- angular.json | 10 +-- docker-compose-development.tests.yml | 2 +- docker-compose.yml | 8 +- package.json | 6 +- ...ironment.rec.ts => environment.staging.ts} | 0 6 files changed, 58 insertions(+), 50 deletions(-) rename src/environments/{environment.rec.ts => environment.staging.ts} (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cee6215c..b538742b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,68 +4,76 @@ stages: - deploy - post-deploy -test_development: +test: stage: test only: - - master + - development script: - - docker-compose --project-name data-reloaded-dev-testing -f docker-compose-development.tests.yml build - - docker-compose --project-name data-reloaded-dev-testing -f docker-compose-development.tests.yml up -d + - docker-compose -f docker-compose-development.tests.yml build + - docker-compose --project-name portail-data-dev-testing -f docker-compose-development.tests.yml up -d build_development: stage: build only: - - master - - sandbox + - development script: - - export NODE_ENV=DEV + - export TAG=dev - export NGINX_PORT=8081 - - docker-compose --project-name data-reloaded-dev build --build-arg env=dev nginx-app + - docker-compose build --build-arg env=dev nginx-app + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker-compose push + +build_staging: + stage: build + only: + - development + when: manual + script: + - export TAG=staging + - export NGINX_PORT=8080 + - docker-compose build --build-arg env=staging nginx-app + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker-compose push deploy_development: stage: deploy only: - - master - - sandbox + - development script: - - export NODE_ENV=DEV + - export TAG=dev - export NGINX_PORT=8081 - export MATOMO_SITE_ID=1 - export MATOMO_SERVER_URL=https://matomo-intothesky.alpha.grandlyon.com - - docker-compose --project-name data-reloaded-dev up -d + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker-compose pull + - docker-compose --project-name portail-data-${TAG} up -d environment: name: development url: https://data-reloaded-dev.alpha.grandlyon.com +deploy_staging: + stage: deploy + only: + - development + when: manual + script: + - export TAG=staging + - export NGINX_PORT=8080 + - export MATOMO_SITE_ID=3 + - export MATOMO_SERVER_URL=https://matomo-intothesky.alpha.grandlyon.com + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker-compose pull + - docker-compose --project-name portail-data-${TAG} up -d + environment: + name: staging + url: https://data-reloaded-rec.alpha.grandlyon.com + code_analysis: stage: post-deploy only: - - master + - development before_script: - export PATH=$PATH:/usr/local/bin/sonar-scanner-3.2.0.1227-linux/bin/ - export NODE_PATH=$NODE_PATH:`npm root -g` script: - - sonar-scanner -D sonar.projectKey=data-reloaded-1-neo-dgl2018 -D sonar.sources=. - -build_staging: - stage: build - only: - - staging - script: - - export NODE_ENV=REC - - export NGINX_PORT=8080 - - docker-compose --project-name data-reloaded-rec build --build-arg env=rec nginx-app - -deploy_staging: - stage: deploy - only: - - staging - script: - - export NODE_ENV=REC - - export NGINX_PORT=8080 - - export MATOMO_SITE_ID=3 - - export MATOMO_SERVER_URL=https://matomo-intothesky.alpha.grandlyon.com - - docker-compose --project-name data-reloaded-rec up -d - environment: - name: staging - url: https://data-reloaded-rec.alpha.grandlyon.com \ No newline at end of file + - sonar-scanner -D sonar.projectKey=data-reloaded-1-neo-dgl2018 -D sonar.sources=. \ No newline at end of file diff --git a/angular.json b/angular.json index 9f079276..976d9dbb 100644 --- a/angular.json +++ b/angular.json @@ -85,7 +85,7 @@ "fileReplacements": [ { "replace": "src/environments/environment.ts", - "with": "src/environments/environment.rec.ts" + "with": "src/environments/environment.staging.ts" } ] }, @@ -149,7 +149,7 @@ "i18nLocale": "en", "baseHref": "/en/" }, - "recette-fr": { + "staging-fr": { "optimization": true, "outputHashing": "all", "sourceMap": false, @@ -162,7 +162,7 @@ "fileReplacements": [ { "replace": "src/environments/environment.ts", - "with": "src/environments/environment.rec.ts" + "with": "src/environments/environment.staging.ts" }, { "replace": "src/i18n/geosource/geosource.ts", @@ -187,7 +187,7 @@ "i18nLocale": "fr", "baseHref": "/fr/" }, - "recette-en": { + "staging-en": { "optimization": true, "outputHashing": "all", "sourceMap": false, @@ -200,7 +200,7 @@ "fileReplacements": [ { "replace": "src/environments/environment.ts", - "with": "src/environments/environment.rec.ts" + "with": "src/environments/environment.staging.ts" } ], "outputPath": "dist/en", diff --git a/docker-compose-development.tests.yml b/docker-compose-development.tests.yml index 5d6a0a97..28307883 100644 --- a/docker-compose-development.tests.yml +++ b/docker-compose-development.tests.yml @@ -1,4 +1,4 @@ -version: "2" +version: "3" services: nginx-test: diff --git a/docker-compose.yml b/docker-compose.yml index 86cb7bff..eced1698 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,11 @@ -version: "2" +version: "3" services: nginx-app: - container_name: nginx-app-${NODE_ENV} + container_name: nginx-app-${TAG} restart: unless-stopped - build: - context: ./ + build: . + image: registry.alpha.grandlyon.com/refonte-data/portail-data:${TAG} volumes: - ./nginx.conf.template:/etc/nginx/nginx.conf.template ports: diff --git a/package.json b/package.json index 88eeef01..dfd1652e 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "start-aot-fr": "ng serve --configuration=aot-fr", "start-aot-en": "ng serve --configuration=aot-en", "build-i18n:dev": "for lang in en fr; do ng build --prod --build-optimizer --configuration=development-$lang; done", - "build-i18n:rec": "for lang in en fr; do ng build --prod --build-optimizer --configuration=recette-$lang; done", - "win-build-i18n:fr": "ng build --prod --build-optimizer --configuration=recette-fr", - "win-build-i18n:en": "ng build --prod --build-optimizer --configuration=recette-en", + "build-i18n:rec": "for lang in en fr; do ng build --prod --build-optimizer --configuration=staging-$lang; done", + "win-build-i18n:fr": "ng build --prod --build-optimizer --configuration=staging-fr", + "win-build-i18n:en": "ng build --prod --build-optimizer --configuration=staging-en", "win-build-i18n": "npm run win-build-i18n:en && npm run win-build-i18n:fr", "test": "ng test --browsers=Chrome --code-coverage=true", "test:ci": "ng test --browsers=ChromeHeadlessCI --code-coverage=true --watch=false", diff --git a/src/environments/environment.rec.ts b/src/environments/environment.staging.ts similarity index 100% rename from src/environments/environment.rec.ts rename to src/environments/environment.staging.ts -- GitLab