From 8afd643dd6ef5677e2966e7f121f486e9ee4ffb9 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 11:57:27 -0700 Subject: [PATCH 01/15] Add ci --- .gitlab-ci.yml | 195 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..e7681f28 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,195 @@ +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 + script: + - ./gradlew assemble + stage: build + +#### +# 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 -- GitLab From d84495bc49684113e2e7ac87e2b4505221656446 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 12:05:32 -0700 Subject: [PATCH 02/15] add clone --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e7681f28..a3548b3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -159,6 +159,9 @@ Build Project: extends: - .java script: + - pushd .. + - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz + - popd - ./gradlew assemble stage: build -- GitLab From 04bf2fac93776f8965a9088ef6f12c6547657d0c Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 12:52:16 -0700 Subject: [PATCH 03/15] add env --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a3548b3b..0bc81650 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -159,9 +159,10 @@ Build Project: extends: - .java script: - - pushd .. - - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz - - popd + # - pushd .. + # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz + # - popd + - env - ./gradlew assemble stage: build -- GitLab From 1dcccd2e034b54740c5fb9f311920c08072e437f Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 12:57:09 -0700 Subject: [PATCH 04/15] test --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0bc81650..5daf27b4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ variables: + CI_PROJECT_DIR: ${CI_PROJECT_DIR}/legacy/nshmp-haz-ws CI_DEFAULT_BRANCH: legacy-ws-main CI_PROJECT_NAME: nshmp-haz-ws-legacy PRODUCTION_BRANCH: legacy-ws-production @@ -159,10 +160,10 @@ Build Project: extends: - .java script: + - pwd # - pushd .. # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz # - popd - - env - ./gradlew assemble stage: build -- GitLab From 527ff57b09996c28590894e4a1fe0102e1df014c Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 13:33:43 -0700 Subject: [PATCH 05/15] test --- .gitlab-ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5daf27b4..34ad55ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,4 @@ variables: - CI_PROJECT_DIR: ${CI_PROJECT_DIR}/legacy/nshmp-haz-ws CI_DEFAULT_BRANCH: legacy-ws-main CI_PROJECT_NAME: nshmp-haz-ws-legacy PRODUCTION_BRANCH: legacy-ws-production @@ -161,11 +160,15 @@ Build Project: - .java script: - pwd + - env # - pushd .. # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz # - popd - - ./gradlew assemble + # - ./gradlew assemble stage: build + variables: + CI_PROJECT_PATH: ${CI_PROJECT_PATH}/legacy/nshmp-haz-ws + CI_PROJECT_DIR: ${CI_PROJECT_DIR}/legacy/nshmp-haz-ws #### # Stage: trigger -- GitLab From 679b07723129af0341bd30eaa115bf56b5e7b915 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 13:45:21 -0700 Subject: [PATCH 06/15] test hooks --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 34ad55ed..5b408406 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,17 +158,17 @@ Build Image: Build Project: extends: - .java + hooks: + pre_get_sources_script: + - mkdir -p legacy/nshmp-haz-ws + - cd legacy/nshmp-haz-ws script: - pwd - - env # - pushd .. # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz # - popd # - ./gradlew assemble stage: build - variables: - CI_PROJECT_PATH: ${CI_PROJECT_PATH}/legacy/nshmp-haz-ws - CI_PROJECT_DIR: ${CI_PROJECT_DIR}/legacy/nshmp-haz-ws #### # Stage: trigger -- GitLab From fd291318bf9e39f74b57ff6139cf117f1cea3be5 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 13:49:38 -0700 Subject: [PATCH 07/15] test --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b408406..5d7ffd41 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,6 +160,7 @@ Build Project: - .java hooks: pre_get_sources_script: + - echo "Hello asdasdad" - mkdir -p legacy/nshmp-haz-ws - cd legacy/nshmp-haz-ws script: -- GitLab From 3147024e007ed3315cdbe8a29289abe4bbbea578 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 13:52:37 -0700 Subject: [PATCH 08/15] ws --- .gitlab-ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d7ffd41..f0a40da9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,11 +158,8 @@ Build Image: Build Project: extends: - .java - hooks: - pre_get_sources_script: - - echo "Hello asdasdad" - - mkdir -p legacy/nshmp-haz-ws - - cd legacy/nshmp-haz-ws + pre_clone_script: + - echo "asdad" script: - pwd # - pushd .. -- GitLab From f42d9e1c17d0139972b3184a93e4714fa1a27473 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 13:58:09 -0700 Subject: [PATCH 09/15] test --- .gitlab-ci.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f0a40da9..74072e55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,15 +158,20 @@ Build Image: Build Project: extends: - .java - pre_clone_script: - - echo "asdad" + before_script: + - mkdir -p ${DIR} + - mv * ${DIR}/. + - pushd ${DIR} script: - pwd + - ls -al # - pushd .. # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz # - popd # - ./gradlew assemble stage: build + variables: + DIR: legacy/nshmp-haz-ws #### # Stage: trigger -- GitLab From bbc59eea41c001d0d6ffbeed0fc638fb82099311 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:02:13 -0700 Subject: [PATCH 10/15] test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 74072e55..69f32127 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,7 +160,7 @@ Build Project: - .java before_script: - mkdir -p ${DIR} - - mv * ${DIR}/. + - mv !(${DIR}) ${DIR}/. - pushd ${DIR} script: - pwd -- GitLab From 19e0bd16ff302b649d7be1a17a3911489013eb1a Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:05:18 -0700 Subject: [PATCH 11/15] move files --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69f32127..7e870c18 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,7 +160,7 @@ Build Project: - .java before_script: - mkdir -p ${DIR} - - mv !(${DIR}) ${DIR}/. + - mv -f * ${DIR}/. - pushd ${DIR} script: - pwd -- GitLab From d3915f886f440659e1b0fcf6d531923e52bd34dc Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:28:58 -0700 Subject: [PATCH 12/15] fix command --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e870c18..57d99ad1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,7 +160,7 @@ Build Project: - .java before_script: - mkdir -p ${DIR} - - mv -f * ${DIR}/. + - mv $(ls -1 | grep -v ${DIR}) ${DIR}/. - pushd ${DIR} script: - pwd -- GitLab From b94dfcf59a5140f9ac4f0165e73cc992fa87d303 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:36:49 -0700 Subject: [PATCH 13/15] fix --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 57d99ad1..37bfec9a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,7 +160,7 @@ Build Project: - .java before_script: - mkdir -p ${DIR} - - mv $(ls -1 | grep -v ${DIR}) ${DIR}/. + - mv $(ls -1 | grep -v $(basename $(dirname ${DIR}))) ${DIR}/. - pushd ${DIR} script: - pwd -- GitLab From bba8c67a9a06cd43b79cd53c4f12af2d5a90d7ab Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:38:10 -0700 Subject: [PATCH 14/15] Build --- .gitlab-ci.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 37bfec9a..b258433d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -162,13 +162,11 @@ Build Project: - 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: - - pwd - - ls -al - # - pushd .. - # - git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git --branch=legacy-main nshmp-haz - # - popd - # - ./gradlew assemble + - ./gradlew assemble stage: build variables: DIR: legacy/nshmp-haz-ws -- GitLab From e0b237910419409c91a5305ba425732cc0f271b2 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 19 Jan 2023 14:42:37 -0700 Subject: [PATCH 15/15] CHange version --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b3035789..fa5ab6f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,9 @@ ENV LANG en_US.UTF-8 ENV PATH ${CATALINA_HOME}/bin:${PATH} ENV TOMCAT_SOURCE http://archive.apache.org/dist/tomcat 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 WORKDIR ${CATALINA_HOME} -- GitLab