Skip to content
Snippets Groups Projects
Commit e3e20b94 authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

Merge branch 'legacy-ws-main--ci' into 'legacy-ws-main'

Resolves - Legacy WS: Add CI/CD Pipeline

See merge request !696
parents 790000c9 e0b23791
No related branches found
No related tags found
1 merge request!696Resolves - Legacy WS: Add CI/CD Pipeline
Pipeline #214791 passed
variables:
CI_DEFAULT_BRANCH: legacy-ws-main
CI_PROJECT_NAME: nshmp-haz-ws-legacy
PRODUCTION_BRANCH: legacy-ws-production
UPSTREAM_PATH: ghsc/nshmp/nshmp-haz
# Do not run for merge requests
workflow:
rules:
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH
stages:
- build
- trigger
default:
tags:
- nshmp
####
# Environment Templates
####
##
# Rule for development environment
##
.development-env: &development-env
if: >
$CI_PROJECT_PATH != $UPSTREAM_PATH
|| (
$CI_PROJECT_PATH == $UPSTREAM_PATH
&& (
$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
&& $CI_COMMIT_BRANCH != $PRODUCTION_BRANCH
)
)
variables:
ENVIRONMENT: development
##
# Rule for staging environment
##
.staging-env: &staging-env
if: >
$CI_PROJECT_PATH == $UPSTREAM_PATH
&& $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
ENVIRONMENT: staging
##
# Rule for production envrionment
##
.production-env: &production-env
if: >
$CI_PROJECT_PATH == $UPSTREAM_PATH
&& $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH
variables:
ENVIRONMENT: production
####
# Java Templates
####
##
# General Java setup
##
.java:
image: ${DEVOPS_REGISTRY}usgs/amazoncorretto:8
####
# Docker Templates
####
##
# Docker in Docker
##
.dind:
image: ${DEVOPS_REGISTRY}docker:19.03-git
services:
- alias: docker
name: ${DEVOPS_REGISTRY}docker:19.03-dind
variables:
DOCKER_DRIVER: overlay2
##
# Build Docker image and push to registry.
#
# Pushes to internal registry for all branches and Docker registry
# on default upstream and production upstream branches.
##
.docker-build:
extends:
- .dind
needs: []
rules:
- *development-env
- *staging-env
- *production-env
script:
- BUILD_ARGS='';
- |
for arg in ${DOCKER_BUILD_ARGS}; do
BUILD_ARGS="${BUILD_ARGS} --build-arg ${arg}";
done
- env_image_name="${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${ENVIRONMENT}-latest";
- latest_image_name="${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:latest";
- sha_image_name="${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${IMAGE_TAG}";
- |
docker build \
${BUILD_ARGS} \
--pull \
--tag "${env_image_name}" \
--file "${DOCKERFILE}" \
.;
- docker push "${env_image_name}";
- |
docker tag "${env_image_name}" "${sha_image_name}";
docker push "${sha_image_name}";
- |
docker_latest_image="usgs/${CI_PROJECT_NAME}:latest";
docker_env_image="usgs/${CI_PROJECT_NAME}:${ENVIRONMENT}-latest";
docker tag "${env_image_name}" "${docker_env_image}";
docker push "${docker_env_image}";
if [[ "${ENVIRONMENT}" != "development" ]]; then
docker tag "${env_image_name}" "${latest_image_name}";
docker push "${latest_image_name}";
docker tag "${env_image_name}" "${docker_latest_image}";
docker push "${docker_latest_image}";
fi
- |
printf "
--------
Image Name - %s:%s
--------
" "${CI_PROJECT_NAME}" "${IMAGE_TAG}";
stage: build
tags:
- build
####
# Stage: build
####
Build Image:
extends:
- .docker-build
variables:
DOCKER_BUILD_ARGS: |
BUILD_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:8
FROM_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:8
DOCKERFILE: Dockerfile
IMAGE_TAG: ${ENVIRONMENT}-${CI_COMMIT_SHORT_SHA}
Build Project:
extends:
- .java
before_script:
- mkdir -p ${DIR}
- mv $(ls -1 | grep -v $(basename $(dirname ${DIR}))) ${DIR}/.
- pushd ${DIR}
- pushd ..
- git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz
- popd
script:
- ./gradlew assemble
stage: build
variables:
DIR: legacy/nshmp-haz-ws
####
# Stage: trigger
####
Trigger nshmp-haz-ws Legacy CDK:
rules:
-
<<: *development-env
when: manual
- *staging-env
- *production-env
script:
- apk add curl
- |
if [ "${ENVIRONMENT}" == 'production' ]; then
REF="production";
fi
- |
curl --request POST \
--form token=${NSHMP_HAZ_WS_LEGACY_CDK_TRIGGER_TOKEN} \
--form ref=${REF} \
--form "variables[description]=Triggered by nshmp-haz legacy-ws" \
--form "variables[ENVIRONMENT]=${ENVIRONMENT}" \
--form "variables[SOURCE_CODE_BRANCH]=${CI_COMMIT_REF_SLUG}" \
--form "variables[SOURCE_CODE_PROJECT_PATH]=${CI_PROJECT_PATH}" \
--form "variables[TRIGGER_PASSCODE]=${NSHMP_HAZ_WS_LEGACY_CDK_TRIGGER_TOKEN}" \
"https://${PRIVATE_GITLAB}/api/v4/projects/${NSHMP_HAZ_WS_LEGACY_CDK_PROJECT_ID}/trigger/pipeline"
stage: trigger
variables:
REF: main
UPSTREAM_PATH: ghsc/nshmp/nshmp-haz
...@@ -37,7 +37,9 @@ ENV LANG en_US.UTF-8 ...@@ -37,7 +37,9 @@ ENV LANG en_US.UTF-8
ENV PATH ${CATALINA_HOME}/bin:${PATH} ENV PATH ${CATALINA_HOME}/bin:${PATH}
ENV TOMCAT_SOURCE http://archive.apache.org/dist/tomcat ENV TOMCAT_SOURCE http://archive.apache.org/dist/tomcat
ENV TOMCAT_WEBAPPS ${CATALINA_HOME}/webapps ENV TOMCAT_WEBAPPS ${CATALINA_HOME}/webapps
ENV TOMCAT_URL=${TOMCAT_SOURCE}/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz ENV TOMCAT_VERSION=8.5.85
ENV TOMCAT_URL=${TOMCAT_SOURCE}/tomcat-8/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz
# Install Tomcat # Install Tomcat
WORKDIR ${CATALINA_HOME} WORKDIR ${CATALINA_HOME}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment