Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.86 KiB
Newer Older
image: node:12.16.3
Falk's avatar
Falk committed

stages:
  - test
  - build
  - deploy

Falk's avatar
Falk committed
variables:
  MONGODB_VERSION: '4.2.6'
  MONGODB_URL: 'mongodb://mongodb:27017/test'
Falk's avatar
Falk committed
  PORT: '3002'
Falk's avatar
Falk committed
  JWT_SECRET: 'test'

# http://docs.gitlab.com/ee/ci/yaml/README.html#cache
cache:
  paths:
    - app/client/node_modules/
    - app/server/node_modules/
Falk's avatar
Falk committed

test_client:
Falk's avatar
Falk committed
  script:
    - cd app/client
    - npm install
Falk's avatar
Falk committed
    - npm run test
  when: always
Falk's avatar
Falk committed
test_server:
  # Info: http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service
  services:
    - name: mongo:$MONGODB_VERSION
Falk's avatar
Falk committed
  script:
    - cd app/server
    - npm install
Falk's avatar
Falk committed
    - npm run test
  when: always
derrabauke's avatar
derrabauke committed
  stage: build
  tags: 
    - docker-privileged
  image: docker:19.03.12
derrabauke's avatar
derrabauke committed
  rules:
    - if: $CI_COMMIT_TAG
      when: always
derrabauke's avatar
derrabauke committed
  services:
    - docker:19.03.12-dind
derrabauke's avatar
derrabauke committed
  before_script: 
    - echo $CI_REGISTRY
    - echo $CI_REGISTRY_USER
derrabauke's avatar
derrabauke committed
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
derrabauke's avatar
derrabauke committed
    CLIENT_IMAGE_TAG: $CI_REGISTRY_IMAGE/app:$CI_COMMIT_TAG
derrabauke's avatar
derrabauke committed
    - cd app/client
derrabauke's avatar
derrabauke committed
    - docker build -t $CLIENT_IMAGE_TAG .
derrabauke's avatar
derrabauke committed
    - docker tag $CI_COMMIT_TAG
    - docker image push --all-tags $CLIENT_IMAGE_TAG
derrabauke's avatar
derrabauke committed

build_server:
  stage: build
  tags: 
    - docker-privileged
derrabauke's avatar
derrabauke committed
  rules:
    - if: $CI_COMMIT_TAG
      when: always
derrabauke's avatar
derrabauke committed
  image: docker:19.03.12
  services:
    - docker:19.03.12-dind
  before_script: 
    - echo $CI_REGISTRY
    - echo $CI_REGISTRY_USER
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  variables: 
derrabauke's avatar
derrabauke committed
    SERVER_IMAGE_TAG: $CI_REGISTRY_IMAGE/server:$CI_COMMIT_TAG
    SERVER_RELEASE_IMAGE_TAG: $CI_REGISTRY_IMAGE/server:latest
derrabauke's avatar
derrabauke committed
  script:
    - cd app/server
    - docker build -t $SERVER_IMAGE_TAG .
    - docker tag $SERVER_IMAGE_TAG $SERVER_RELEASE_IMAGE_TAG
    - docker image push --all-tags $SERVER_IMAGE_TAG