Skip to content
Snippets Groups Projects
Commit 3eab26b5 authored by Powers, Peter M.'s avatar Powers, Peter M.
Browse files

Merge branch 'issue-100' into 'master'

Resolves: Javadocs

Closes #100

See merge request !182
parents 571ab1f2 3d36047d
No related branches found
No related tags found
1 merge request!182Resolves: Javadocs
Pipeline #53452 passed
/.gradle/
.settings
bin
build
.classpath
.project
Scratch*.java
tmp
.DS_Store
.vscode
.apt_generated*
.factorypath
src/resources/fault
libs
####
# GitLab ci-cd pipline for nshmp-lib
####
variables: variables:
JACOCO_HTML_DIR: ${REPORTS_DIR}/jacoco/test/html IMAGE_NAME: ${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${ENVIRONMENT}-${CI_COMMIT_SHORT_SHA}
JUNIT_FILES: build/test-results/test/TEST-*.xml
REPORTS_DIR: build/reports include:
- project: 'ghsc/nshmp/nshmp-pipeline-templates'
ref: 'main'
file: 'templates/library.yml'
stages: stages:
- test - init
- build
- publish - publish
- trigger
# Do not run for merge requests # Do not run for merge requests
workflow: workflow:
...@@ -17,21 +18,37 @@ workflow: ...@@ -17,21 +18,37 @@ workflow:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH - if: $CI_COMMIT_BRANCH
.tags: .gradle:
image: ${DEVOPS_REGISTRY}usgs/java:11-jdk
tags: tags:
- development - development
.gradle: ####
image: ${DEVOPS_REGISTRY}usgs/java:11-jdk # Stage: init
####
Init:
extends:
- .gradle-init
#### ####
# Stage: test # Stage: test
#### ####
Build Image:
extends:
- .docker-build
variables:
DOCKER_BUILD_ARGS: |
BUILD_IMAGE=${DEVOPS_REGISTRY}usgs/java:11-jdk
FROM_IMAGE=${DEVOPS_REGISTRY}usgs/nginx:latest
UPSTREAM_PATH: ghsc/nshmp/nshmp-lib
Build Project: Build Project:
extends: extends:
- .gradle - .gradle
- .tags needs:
- Init
rules: rules:
- -
changes: changes:
...@@ -43,12 +60,13 @@ Build Project: ...@@ -43,12 +60,13 @@ Build Project:
when: manual when: manual
script: script:
- ./gradlew assemble; - ./gradlew assemble;
stage: test stage: build
Markdown Lint: Markdown Lint:
extends: extends:
- .gradle - .gradle
- .tags needs:
- Init
rules: rules:
- -
changes: changes:
...@@ -59,58 +77,7 @@ Markdown Lint: ...@@ -59,58 +77,7 @@ Markdown Lint:
when: manual when: manual
script: script:
- ./gradlew markdownlint; - ./gradlew markdownlint;
stage: test stage: build
Spotless Check:
extends:
- .gradle
- .tags
rules:
-
changes:
- 'src/**'
- '*gradle*'
when: on_success
-
allow_failure: true
when: manual
script:
- ./gradlew spotlessCheck;
stage: test
Spotbugs Main:
extends:
- .gradle
- .tags
rules:
-
changes:
- 'src/**'
- '*gradle*'
when: on_success
-
allow_failure: true
when: manual
script:
- ./gradlew spotbugsMain;
stage: test
Spotbugs Test:
extends:
- .gradle
- .tags
rules:
-
changes:
- 'src/**'
- '*gradle*'
when: on_success
-
allow_failure: true
when: manual
script:
- ./gradlew spotbugsTest;
stage: test
Unit Tests: Unit Tests:
artifacts: artifacts:
...@@ -121,7 +88,8 @@ Unit Tests: ...@@ -121,7 +88,8 @@ Unit Tests:
coverage: '/Total.*?([0-9]{1,3})%/' coverage: '/Total.*?([0-9]{1,3})%/'
extends: extends:
- .gradle - .gradle
- .tags needs:
- Init
rules: rules:
- -
changes: changes:
...@@ -134,23 +102,7 @@ Unit Tests: ...@@ -134,23 +102,7 @@ Unit Tests:
script: script:
- ./gradlew check; - ./gradlew check;
- cat ${JACOCO_HTML_DIR}/index.html; - cat ${JACOCO_HTML_DIR}/index.html;
stage: test stage: build
YAML Lint:
extends:
- .gradle
- .tags
rules:
-
changes:
- '**/*.yml'
when: on_success
-
allow_failure: true
when: manual
script:
- ./gradlew yamllint;
stage: test
#### ####
# Stage: publish # Stage: publish
...@@ -158,10 +110,49 @@ YAML Lint: ...@@ -158,10 +110,49 @@ YAML Lint:
Publish: Publish:
extends: extends:
- .tags
- .gradle - .gradle
needs:
- Init
- Build Image
- Build Project
- Markdown Lint
- Unit Tests
only: only:
- tags@ghsc/nshmp/nshmp-lib - tags@ghsc/nshmp/nshmp-lib
script: script:
- ./gradlew publish -P version=${CI_COMMIT_TAG} - ./gradlew publish -P version=${CI_COMMIT_TAG}
stage: publish stage: publish
####
# Stage: trigger
####
Trigger nshmp-webapps:
needs:
- Build Image
rules:
- if: !reference [.development-env, if]
variables: !reference [.development-env, variables]
when: manual
- !reference [.staging-env]
- !reference [.production-env]
script:
- apk add curl
- |
if [ "${ENVIRONMENT}" == 'production' ]; then
REF="production";
fi
- |
curl --request POST \
--form token=${NSHMP_WEBAPPS_CDK_TRIGGER_TOKEN} \
--form ref=${REF} \
--form "variables[description]=Triggered by nshmp-lib" \
--form "variables[ENVIRONMENT]=${ENVIRONMENT}" \
--form "variables[NSHMP_APPS_IMAGE]=${IMAGE_NAME}" \
--form "variables[TRIGGER_PASSCODE]=${NSHMP_WEBAPPS_CDK_TRIGGER_TOKEN}" \
"https://${PRIVATE_GITLAB}/api/v4/projects/${NSHMP_WEBAPPS_CDK_PROJECT_ID}/trigger/pipeline"
stage: trigger
variables:
REF: main
UPSTREAM_PATH: ghsc/nshmp/nshmp-lib
####
# Deploy nshmp-lib JavDocs in NGINX.
#
# Build:
# docker build <IMAGE_NAME>:<IMAGE_TAG> .
#
# Run:
# docker run -p <PORT>:8080 -d <IMAGE_NAME>:<IMAGE_TAG>
####
ARG BUILD_IMAGE=usgs/java:11-jdk
ARG FROM_IMAGE=usgs/nginx:latest
##
# Builder image, compile JavDocs
##
FROM ${BUILD_IMAGE} as buildenv
COPY --chown=usgs-user:usgs-user . /app
WORKDIR /app
RUN ./gradlew javadoc
##
# Application image, run nshmp-lib JavaDocs in nginx
##
FROM ${FROM_IMAGE}
# Set environment variables for use by startup hooks
ENV BASE_HREF="nshmp-lib" \
DOCUMENT_ROOT="/usr/share/nginx/html" \
HEALTHCHECK_SCRIPT="/healthcheck.sh" \
NGINX_CONF_DIR="/etc/nginx/default.d"
USER root
RUN rm -rf ${DOCUMENT_ROOT}/ && \
mkdir -p ${DOCUMENT_ROOT}/BASE_HREF && \
chown usgs-user:usgs-user ${HEALTHCHECK_SCRIPT} && \
chown -R usgs-user:usgs-user /usr/share/nginx && \
chown -R usgs-user:usgs-user /etc/nginx
USER usgs-user
COPY --chown=usgs-user:usgs-user hooks /startup-hooks/
COPY --from=buildenv \
--chown=usgs-user:usgs-user \
/app/build/docs/javadoc \
${DOCUMENT_ROOT}/BASE_HREF/
WORKDIR /usr/share/nginx
...@@ -10,7 +10,7 @@ githook { ...@@ -10,7 +10,7 @@ githook {
hooks { hooks {
"pre-push" { "pre-push" {
task = "markdownlint yamllint spotlessCheck spotbugsMain spotbugsTest" task = "markdownlint spotlessCheck spotbugsMain spotbugsTest"
} }
} }
} }
...@@ -7,11 +7,10 @@ node { ...@@ -7,11 +7,10 @@ node {
/* Install markdownlint-cli with NPM */ /* Install markdownlint-cli with NPM */
task nodeInstall(type: NpmTask) { task nodeInstall(type: NpmTask) {
description "Install markdownlint-clia and yamllint with NPM" description "Install markdownlint-cli with NPM"
args = [ args = [
"install", "install",
"markdownlint-cli", "markdownlint-cli",
"yaml-lint",
"--save-dev", "--save-dev",
"--loglevel", "--loglevel",
"error" "error"
...@@ -36,15 +35,3 @@ task markdownlintApply(type: NpxTask) { ...@@ -36,15 +35,3 @@ task markdownlintApply(type: NpxTask) {
"--fix", "--fix",
] ]
} }
/* Run yamllint */
task yamllint(type: NpxTask) {
description "Run yamllint"
dependsOn nodeInstall
command = "yamllint"
args = [
"**/*.yml",
"--ignore=.gradle/**",
"--ignore=node_modules/**"
]
}
#!/bin/bash
BASE_HREF=${BASE_HREF:-'nshmp-lib'};
DOCUMENT_ROOT=${DOCUMENT_ROOT:-'.'};
mkdir -p "${DOCUMENT_ROOT}/$(dirname "${BASE_HREF}")";
ln -sf "${DOCUMENT_ROOT}/BASE_HREF" "${DOCUMENT_ROOT}/${BASE_HREF}";
#!/bin/bash
BASE_HREF=${BASE_HREF:-'nshmp-lib'};
HEALTHCHECK_SCRIPT=${HEALTHCHECK_SCRIPT:-'./healthcheck.sh'};
# Write healthcheck script for Docker
cat <<-EO_HEALTHCHECK > "${HEALTHCHECK_SCRIPT}"
#!/bin/bash
status=\$(curl \
-s -o /dev/null \
-w "%{http_code}" \
http://localhost:8080/${BASE_HREF}/index.html \
);
if [ \$status -eq 200 ]; then
exit 0;
else
exit 1;
fi
EO_HEALTHCHECK
chmod +x "${HEALTHCHECK_SCRIPT}";
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