image: docker:git services: - docker:dind stages: - sonar-analysis - build - deploy build: image: docker:18.09 services: - docker:18.09-dind stage: build only: - master - recette script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" --build-arg conf=prod . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" build_dev: image: docker:18.09 services: - docker:18.09-dind stage: build only: - dev script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:dev" --build-arg conf=dev . - docker push "$CI_REGISTRY_IMAGE:dev" build_mobile: image: docker:18.09 services: - docker:18.09-dind stage: build only: - mobile script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:mobile" --build-arg conf=dev . - docker push "$CI_REGISTRY_IMAGE:mobile" build_json_server: image: docker:18.09 services: - docker:18.09-dind stage: build only: - dev script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:json_server" ./api/ - docker push "$CI_REGISTRY_IMAGE:json_server" when: manual deploy_dev: stage: deploy tags: - deploy only: - dev script: - cd /home/mps/ram - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose pull web-app - docker-compose up -d web-app - docker system prune -a -f deploy_mobile: stage: deploy tags: - deploy only: - mobile script: - cd /home/mps/ram - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose pull web-app - docker-compose up -d web-app - docker system prune -a -f deploy_rec: stage: deploy tags: - deploy only: - recette script: - cd /home/mps/ram - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker-compose pull web-app-rec - docker-compose up -d web-app-rec - docker system prune -a -f code_analysis: image: skilldlabs/sonar-scanner:3.4.0 services: - docker:18.09-dind stage: sonar-analysis only: - dev before_script: - export NODE_PATH=$NODE_PATH:`npm root -g` - npm install -g typescript script: - > sonar-scanner -Dsonar.projectName=${SONAR_PROJECT_KEY} -Dsonar.projectVersion=1.0 -Dsonar.sourceEncoding=UTF-8 -Dsonar.projectBaseDir=. -Dsonar.host.url=${SONAR_URL} -Dsonar.projectKey=${SONAR_PROJECT_KEY} -Dsonar.login=${SONAR_TOKEN} mr: image: docker:18.09 services: - docker:18.09-dind stage: build only: - merge_requests script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:dev" --build-arg conf=dev .