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

update ci

parent bbf626a7
No related branches found
No related tags found
1 merge request!40Update Pipelines
......@@ -10,18 +10,16 @@ variables:
# Static data in AWS S3
DATA_CONUS_2018A: conus-2018a
include:
- project: "ghsc/hazdev/pipeline-build-template"
ref: "1.1.3"
file: "templates/library.yml"
stages:
- assemble
- test
- build
- publish
- deploy
cache:
key: one-key-to-rule-them-all
paths:
- build
- .gradle
####
# Templates:
# - install-aws: Install aws in a Alpine environment
......@@ -37,20 +35,14 @@ cache:
${DATA_CONUS_2018A}
";
####
# Template: Devlopment tags
####
.dev-tags:
tags:
- development
####
# Template: Common Gradle test
####
.gradle:
extends: .dev-tags
stage: test
image: gradle:jdk11
extends:
- .tags::development
stage: build
image: usgs/java:11
only:
- branches
- master@ghsc/nshmp/nshmp-netcdf
......@@ -91,11 +83,8 @@ cache:
variables:
APP_NAME: nshmp-netcdf
STACK_NAME: nshmp-netcdf
retry:
max: 2
when: 'always'
.staging:
.onprem-staging:
only:
- master@ghsc/nshmp/nshmp-netcdf
- tags@ghsc/nshmp/nshmp-netcdf
......@@ -109,32 +98,28 @@ cache:
- staging02
####
# Stage: assemble
# Stage: build
####
Build Project:
extends:
- .gradle
stage: assemble
stage: build
script:
- ./gradlew --build-cache --no-daemon assemble
retry:
max: 2
when: 'always'
- ./gradlew assemble
####
# Stage: test
####
Build Image:
extends:
- .build
variables:
DOCKER_BUILD_ARGS: |
ci_job_token="${CI_JOB_TOKEN}"
Unit Tests:
stage: test
image: gradle:jdk11
extends: .dev-tags
only:
- branches
- master@ghsc/nshmp/nshmp-netcdf
- tags@ghsc/nshmp/nshmp-netcdf
extends:
- .gradle
coverage: '/Total.*?([0-9]{1,3})%/'
stage: build
script:
- ./gradlew --no-daemon check
- cat ${JACOCO_HTML_DIR}/index.html
......@@ -143,68 +128,43 @@ Unit Tests:
- ${REPORTS_DIR}
reports:
junit: ${JUNIT_FILES}
retry:
max: 2
when: 'always'
Build Image:
stage: test
image: docker:stable-git
extends: .dev-tags
only:
- branches
- master@ghsc/nshmp/nshmp-netcdf
- tags@ghsc/nshmp/nshmp-netcdf
before_script:
- *install-aws
script:
- |
docker build \
--build-arg ci_job_token="${CI_JOB_TOKEN}" \
-t local/${IMAGE_NAME} .
retry:
max: 2
when: 'always'
####
# Stage: publish
####
Build/Publish Data Images:
stage: publish
image: docker:stable-git
extends: .dev-tags
only:
- master@ghsc/nshmp/nshmp-netcdf
- tags@ghsc/nshmp/nshmp-netcdf
before_script:
- *install-aws
- *static-data
- mkdir ${DOCKER_DIR}
script:
- echo "${CHS_PASSWORD}" | docker login --username ${CHS_USERNAME} --password-stdin ${CODE_REGISTRY}
- |
for data in ${STATIC_DATA}; do
IMAGE_NAME=${IMAGE_NAME/:*/:${data}};
INTERNAL_IMAGE_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME};
aws s3 cp --only-show-errors \
s3://nshmp-hazard-curves/${data}.nc \
DATA/${data}.nc;
docker build \
--build-arg ci_job_token="${CI_JOB_TOKEN}" \
--build-arg netcdf_file="DATA/${data}.nc" \
-t ${INTERNAL_IMAGE_NAME} .;
rm DATA/${data}.nc
docker push ${INTERNAL_IMAGE_NAME};
docker image rm ${INTERNAL_IMAGE_NAME};
done
- rm -rf /root/.docker/config.json
retry:
max: 2
when: 'always'
# ####
# # Stage: publish
# ####
# Build/Publish Data Images:
# stage: publish
# image: docker:stable-git
# extends: .dev-tags
# only:
# - master@ghsc/nshmp/nshmp-netcdf
# - tags@ghsc/nshmp/nshmp-netcdf
# before_script:
# - *install-aws
# - *static-data
# - mkdir ${DOCKER_DIR}
# script:
# - echo "${CHS_PASSWORD}" | docker login --username ${CHS_USERNAME} --password-stdin ${CODE_REGISTRY}
# - |
# for data in ${STATIC_DATA}; do
# IMAGE_NAME=${IMAGE_NAME/:*/:${data}};
# INTERNAL_IMAGE_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME};
# aws s3 cp --only-show-errors \
# s3://nshmp-hazard-curves/${data}.nc \
# DATA/${data}.nc;
# docker build \
# --build-arg ci_job_token="${CI_JOB_TOKEN}" \
# --build-arg netcdf_file="DATA/${data}.nc" \
# -t ${INTERNAL_IMAGE_NAME} .;
# rm DATA/${data}.nc
# docker push ${INTERNAL_IMAGE_NAME};
# docker image rm ${INTERNAL_IMAGE_NAME};
# done
# - rm -rf /root/.docker/config.json
Maven:
image: gradle:jdk11
image: usgs/java:11
stage: publish
extends: .dev-tags
only:
......@@ -219,11 +179,11 @@ Maven:
Staging 01:
extends:
- .deploy
- .staging
- .onprem-staging
- .staging01
Staging 02:
extends:
- .deploy
- .staging
- .onprem-staging
- .staging02
####
# Build locally:
# docker build
# --build-arg git_username=<user@name.com>
# --build-arg git_password=<git-api-token>
# --build-arg gitlab_token=<token>
# -t nshmp-netcdf .
####
ARG BUILD_IMAGE=usgs/java:11
ARG FROM_IMAGE=usgs/java:11
ARG project=nshmp-netcdf
ARG workdir=/app/${project}
ARG libs_dir=${workdir}/build/libs
......@@ -14,9 +16,7 @@ ARG jar_file=${libs_dir}/${project}.jar
####
# Build war file
####
FROM usgs/centos:8 as builder
ENV LANG="en_US.UTF-8"
FROM ${BUILD_IMAGE} as builder
ARG gitlab_token=null
ARG ci_job_token=null
......@@ -24,13 +24,12 @@ ARG libs_dir
ARG jar_file
ARG workdir
# TODO: Token needed until nshmp-lib is public
ENV GITLAB_TOKEN ${gitlab_token}
ENV CI_JOB_TOKEN ${ci_job_token}
WORKDIR ${workdir}
RUN yum install -y glibc-langpack-en java-11-openjdk which git
COPY build.gradle .
COPY .git .git
COPY gradle gradle
......@@ -46,9 +45,7 @@ RUN ./gradlew --no-daemon assemble \
####
# Run service
####
FROM usgs/centos:8
ENV LANG "en_US.UTF-8"
FROM ${FROM_IMAGE}
# The NetCDF file to read in
ARG netcdf_file="src/main/resources/default.nc"
......@@ -68,10 +65,9 @@ WORKDIR ${workdir}
COPY --from=builder ${jar_file} ${project}.jar
COPY ${NETCDF_FILE} ${NETCDF_FILE}
RUN yum install -y java-11-openjdk-headless
EXPOSE 8080
ENTRYPOINT /usr/bin/java -jar ${PROJECT}.jar \
"-Dmicronaut.server.context-path=${CONTEXT_PATH}" \
-nshm=${NSHM} \
-netcdf=${NETCDF_FILE}
EXPOSE 8080
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