Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 4.27 KiB
variables:
  DOCKER_TLS_CERTDIR: ""
  GIT_STRATEGY: clone
  REGISTRY_USER: chembl/eubopen
  APPLICATION: eubopen-web
  SERVER_IMAGE_TAG: ${CI_REGISTRY}/${REGISTRY_USER}/${APPLICATION}:${CI_COMMIT_SHORT_SHA}
  DOCKER_DRIVER: overlay
  CONFIGS_FOLDER: run_config
  # Config staging
  ENV_STAGING_FILE_PATH: ${CONFIGS_FOLDER}/staging/.env
  # INGRESS_STAGING_FILE_PATH: ${CONFIGS_FOLDER}/staging/ingress.yml
  # Config prod hx
  ENV_PROD_HX_FILE_PATH: ${CONFIGS_FOLDER}/prod_hx/.env
  # Config prod hx
  ENV_PROD_HH_FILE_PATH: ${CONFIGS_FOLDER}/prod_hh/.env

stages:
  - build
  - test_and_qa
  - prepare_config
  - deploy


# ----------------------------------------------------------------------------------------------------------------------
# build
# ----------------------------------------------------------------------------------------------------------------------
build:
  image:
    name: docker:latest
    entrypoint: ["/bin/sh", "-c"]
  stage: build
  variables:
    DOCKER_HOST: tcp://docker:2375
  services:
    - docker:dind
  tags:
    - dind
  script:
    - set -x
    - echo 'building!'
    - docker version # verify docker cli is there. Also prints server info
    - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
    - echo building ${SERVER_IMAGE_TAG}
    - docker build --tag ${SERVER_IMAGE_TAG} .
    - docker push ${SERVER_IMAGE_TAG}

# ----------------------------------------------------------------------------------------------------------------------
# test
# ----------------------------------------------------------------------------------------------------------------------
unit_tests:
  stage: test_and_qa
  image:
    name: $SERVER_IMAGE_TAG
    entrypoint: [""]
  tags:
    - docker
  script:
    - set -x
    - echo 'Implement these tests!'

# ----------------------------------------------------------------------------------------------------------------------
# Prepare Configuration
# ----------------------------------------------------------------------------------------------------------------------
prepare_config_staging:
  stage: prepare_config
  image:
    name: alpine/git
    entrypoint: ["/bin/sh", "-c"]
  only:
    - staging