From e26698d3196c2967dcbe91d212c0e7b12d1c6543 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 2 Mar 2021 10:30:56 -0700
Subject: [PATCH] add init stage and tasks

---
 .gitlab-ci.yml     | 128 +++++++++++++++++++++++++++++----------------
 .gitlab/Dockerfile |  12 -----
 2 files changed, 84 insertions(+), 56 deletions(-)
 delete mode 100644 .gitlab/Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0c339a063..c245d4300 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
 variables:
+  GRADLE_USER_HOME: ${CI_PROJECT_DIR}/tmp/.gradle
   IMAGE_NAME: ${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}
   JACOCO_HTML_DIR: build/reports/jacoco/test/html
   JUNIT_FILES: build/test-results/test/TEST-*.xml
@@ -9,10 +10,16 @@ include:
     file: 'templates/library.yml'
 
 stages:
-  - image
+  - init
   - build
   - publish
 
+# Do not run for merge requests
+workflow:
+  rules:
+    - if: $CI_COMMIT_TAG
+    - if: $CI_COMMIT_BRANCH
+
 ####
 # Templates
 ####
@@ -40,36 +47,56 @@ stages:
     IMAGE_NAME: ${CI_PROJECT_NAME}
 
 ####
-# Stage: image
+# Stage: init
 ####
 
-Image:
+Init:
+  artifacts:
+    paths:
+      - '${GRADLE_USER_HOME}'
   extends:
-    - .dind
+    - .gradle
+  script:
+    - ./gradlew dependencies
+  stage: init
+
+####
+# Stage: build
+####
+
+Build Image Haz:
+  extends:
+    - .docker-build
+  variables:
+    IMAGE_NAME: nshmp-haz
+
+Build Image WS:
+  extends:
+    - .docker-build
+  variables:
+    IMAGE_NAME: nshmp-haz-ws
+    DOCKERFILE: ws.Dockerfile
+
+Build Lambda:
+  artifacts:
+    expire_in: 1 yr
+    paths:
+      - build/libs/nshmp-haz-v2.jar
+      - build/libs/nshmp-haz-dependencies.zip
+  extends:
+    - .gradle
   rules:
     -
       changes:
-        - .gitlab/Dockerfile
+        - 'src/**'
+        - '*gradle*'
       when: on_success
     -
       allow_failure: true
       when: manual
   script:
-    - |
-      docker build \
-        --build-arg FROM_IMAGE=${DEVOPS_REGISTRY}usgs/node:12 \
-        --file ".gitlab/Dockerfile" \
-        --pull \
-        --tag ${IMAGE_NAME} \
-        .
-    - docker push ${IMAGE_NAME}
-  stage: image
-  tags:
-    - build
-
-####
-# Stage: build
-####
+    - ./gradlew assemble
+    - ./gradlew libs
 
 Build Project:
   extends:
@@ -77,7 +104,8 @@ Build Project:
   rules:
     -
       changes:
-        - '**/*.java'
+        - 'src/**'
+        - '*gradle*'
       when: on_success
     -
       allow_failure: true
@@ -85,25 +113,49 @@ Build Project:
   script:
     - ./gradlew assemble
 
-Build Lambda:
-  artifacts:
-    expire_in: 1 yr
-    paths:
-      - build/libs/nshmp-haz-v2.jar
-      - build/libs/nshmp-haz-dependencies.zip
+Markdown Lint:
   extends:
     - .gradle
   rules:
     -
       changes:
-        - '**/*.java'
+        - '**/*.md'
       when: on_success
     -
       allow_failure: true
       when: manual
   script:
-    - ./gradlew assemble
-    - ./gradlew libs
+    - ./gradlew markdownlint;
+
+Spotbugs Main:
+  extends:
+    - .gradle
+  rules:
+    -
+      changes:
+        - 'src/**'
+        - '*gradle*'
+      when: on_success
+    -
+      allow_failure: true
+      when: manual
+  script:
+    - ./gradlew spotbugsMain;
+
+Spotbugs Test:
+  extends:
+    - .gradle
+  rules:
+    -
+      changes:
+        - 'src/**'
+        - '*gradle*'
+      when: on_success
+    -
+      allow_failure: true
+      when: manual
+  script:
+    - ./gradlew spotbugsTest;
 
 Unit Tests:
   artifacts:
@@ -117,7 +169,8 @@ Unit Tests:
   rules:
     -
       changes:
-        - '**/*.java'
+        - 'src/**'
+        - '*gradle*'
       when: on_success
     -
       allow_failure: true
@@ -126,19 +179,6 @@ Unit Tests:
     - ./gradlew check
     - cat ${JACOCO_HTML_DIR}/index.html
 
-Build Haz Image:
-  extends:
-    - .docker-build
-  variables:
-    IMAGE_NAME: nshmp-haz
-
-Build WS Image:
-  extends:
-    - .docker-build
-  variables:
-    IMAGE_NAME: nshmp-haz-ws
-    DOCKERFILE: ws.Dockerfile
-
 ####
 # Stage: Publish
 ####
diff --git a/.gitlab/Dockerfile b/.gitlab/Dockerfile
deleted file mode 100644
index 179fc7234..000000000
--- a/.gitlab/Dockerfile
+++ /dev/null
@@ -1,12 +0,0 @@
-ARG FROM_IMAGE=usgs/node:12
-
-FROM ${FROM_IMAGE}
-
-ENV LANG="en_US.UTF-8"
-
-USER root
-
-RUN yum install -y git glibc-langpack-en java-11-openjdk-devel which \
-    && yum clean all
-
-USER usgs-user
-- 
GitLab