-
Clayton, Brandon Scott authoredClayton, Brandon Scott authored
.gitlab-ci.yml 4.68 KiB
variables:
CI_REGISTRY: ${CODE_REGISTRY}
CI_REGISTRY_IMAGE: ${CODE_REGISTRY_IMAGE}
DOCKER_DIR: docker-images
DOCKER_TAR: ${DOCKER_DIR}/app.tar
IMAGE_NAME_HAZ: nshmp-haz:${CI_COMMIT_REF_SLUG}
IMAGE_NAME_WS: nshmp-haz-ws:${CI_COMMIT_REF_SLUG}
JACOCO_HTML_DIR: build/reports/jacoco/test/html
JUNIT_FILES: build/test-results/test/TEST-*.xml
stages:
- test
- publish
- deploy
####
# Templates
####
.dev-tags:
tags:
- development
.templates:
adjust-image-names-haz: &adjust-image-names-haz |-
IMAGE_NAME=${IMAGE_NAME_HAZ/:master/:latest};
INTERNAL_IMAGE_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME_WS};
adjust-image-names-ws: &adjust-image-names-ws |-
IMAGE_NAME=${IMAGE_NAME_HAZ/:master/:latest};
INTERNAL_IMAGE_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME_WS};
ssh-key: &ssh-key |-
eval $(ssh-agent -s);
mkdir -p ~/.ssh;
chmod 700 ~/.ssh;
echo "${SSH_PRIVATE_KEY}" >> ~/.ssh/id_ed25519;
chmod 0600 ~/.ssh/id_ed25519;
echo "${SSH_PRIVATE_KEY}" >> ~/.ssh/id_rsa;
chmod 0600 ~/.ssh/id_rsa;
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config;
.docker-build:
stage: test
image: docker:stable
extends: .dev-tags
only:
- branches
- master@ghsc/nshmp/nshmp-haz-v2
- tags@ghsc/nshmp/nshmp-haz-v2
script:
- apk add git;
- *ssh-key
- mkdir ${DOCKER_DIR}
- docker build --build-arg ssh_private_key="${SSH_PRIVATE_KEY}" -t local/${IMAGE_NAME} .
- docker save local/${IMAGE_NAME} > ${DOCKER_TAR}
artifacts:
paths:
- ${DOCKER_DIR}
.docker-publish:
stage: publish
image: docker:stable
extends: .dev-tags
only:
- master@ghsc/nshmp/nshmp-haz-v2
- tags@ghsc/nshmp/nshmp-haz-v2
script:
- echo "${CHS_PASSWORD}" | docker login --username ${CHS_USERNAME} --password-stdin ${CODE_REGISTRY}
- docker load -i ${DOCKER_TAR}
- docker tag local/${IMAGE_NAME} ${INTERNAL_IMAGE_NAME}
- docker push ${INTERNAL_IMAGE_NAME}