Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.29 KiB
image: ${DEVOPS_REGISTRY}usgs/centos:latest

stages:
  - test
  - integration
  - scan
  - deploy

variables:
  CI_REGISTRY: ${CODE_REGISTRY}
  CI_REGISTRY_IMAGE: ${CODE_REGISTRY_IMAGE}
  TRIVY_VERSION: "0.11.0"
  # docker variables
  DOCKER_DRIVER: overlay2
  FROM_IMAGE: ${CODE_REGISTRY}/devops/images/usgs/centos:7
  # environment variables
  APP_NAME: geomag-algorithms
  DATA_HOST: "cwbpub.cr.usgs.gov"
  DATA_PORT: "2060"
  DATA_TYPE: "edge"

## --------------------------------------------------
# Templates
## --------------------------------------------------

.adjust_image_names:
  before_script:
    - IMAGE_NAME=usgs/${APP_NAME}:${CI_COMMIT_REF_SLUG}
    - IMAGE_NAME=${IMAGE_NAME/:master/:latest}
    - INTERNAL_IMAGE_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME}
    - STACK_NAME=${APP_NAME}

.build_docker_image:
  cache: {}
  extends:
    - .adjust_image_names
  image: docker:19.03-git
  only:
    - master@ghsc/geomag/geomag-algorithms
    - production@ghsc/geomag/geomag-algorithms
    - tags@ghsc/geomag/geomag-algorithms
  script:
    - docker build
      --pull
      --build-arg FROM_IMAGE=${FROM_IMAGE}
      --build-arg GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME}
      --build-arg GIT_COMMIT_SHA=${CI_COMMIT_SHA}
      --tag local/${IMAGE_NAME} .

    - docker tag local/${IMAGE_NAME} ${IMAGE_NAME}
    - docker push ${IMAGE_NAME}
    - docker image rm ${IMAGE_NAME}

    - docker tag local/${IMAGE_NAME} ${INTERNAL_IMAGE_NAME}
    - docker push ${INTERNAL_IMAGE_NAME}
    - docker image rm ${INTERNAL_IMAGE_NAME}
  services:
    - docker:19.03-dind
  stage: integration
  tags:
    - build

.check_code:
  cache: {}
  image: ${DEVOPS_REGISTRY}usgs/conda:latest
  script:
    - export PYTHON_VERSION=${PYTHON_VERSION:-3.8}
    - scripts/ci_check_code.sh
  artifacts:
    paths: