You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2018/08/01 22:16:38 UTC

[geode] branch feature/GEODE-5212-no-java updated: Squashed commit of the following:

This is an automated email from the ASF dual-hosted git repository.

jensdeppe pushed a commit to branch feature/GEODE-5212-no-java
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-5212-no-java by this push:
     new 16e399a  Squashed commit of the following:
16e399a is described below

commit 16e399adff93b141130021fdc0b66cc2e57cb548
Author: Jens Deppe <jd...@pivotal.io>
AuthorDate: Wed Aug 1 15:15:36 2018 -0700

    Squashed commit of the following:
    
    commit 79c539a57686f27ad265d58b6d2940daa5dcd075
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Wed Aug 1 09:14:43 2018 -0700
    
        Run full integraion tests again
    
    commit e58e52ba765881ab635c32328ef2345e8a67ec7c
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Tue Jul 31 10:12:53 2018 -0700
    
        remove references to TMPDIR and add debug flag
    
    commit 1ed2bafb2cbde041b9074b5e9816fa63501ded64
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Tue Jul 31 09:46:26 2018 -0700
    
        leave java.io.tmpdir alone
    
    commit 84bdcaa1ffe1e835c9e7d0a966d80865d66d385c
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 30 21:38:32 2018 -0700
    
        windows sucks
    
    commit 80bd8bd7ea3fca561181f7f67b7fb96fc0b3852c
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 30 21:26:43 2018 -0700
    
        quote path because of too long filenames
    
    commit 895300cb1f6eb876725ade6ba50e2c07dc3f20cb
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 30 21:12:24 2018 -0700
    
        maybe powershell
    
    commit 5cf7db0c7fd99b334814570d1566d81a9d4b44d9
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 30 16:30:34 2018 -0700
    
        sleep during backup test se we can debug on the actual test worker
    
    commit 625f3f21fd52756d8994fa3ce0458400f8d9b549
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 30 13:43:44 2018 -0700
    
        GEODE-5497: Add an incremental backup test to BackupIntegrationTest
    
        (cherry picked from commit 19a0718c501ec116f867c2b731d99db7a0644ac6)
    
    commit 6e800b6ef0b921db2929e202693786c7dd50a6e3
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 15:29:32 2018 -0700
    
        more debugging
    
    commit 54b7c5f0ea34ed3470b29438dc389b5cf1f03551
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 13:35:14 2018 -0700
    
        use full path
    
    commit 5e595d769e9fc1d51118d4621e9b58b289c273e7
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 11:56:17 2018 -0700
    
        Because Windows...
    
    commit b2d94f1df791017e1a5225dd4aa6bca06e648ed9
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 11:21:05 2018 -0700
    
        Does the restore.bat script really need cmd.exe?
    
    commit 59167bd78fec4335993cd4713acaa2a0cb402f3b
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 11:06:24 2018 -0700
    
        List directory contents
    
    commit 319ac30fc8fcf7e6eeeb2477e825f2f7d5b1fa70
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 10:24:19 2018 -0700
    
        Add debug output for BackupIntegrationTest
    
    commit 7899f201bfdc76a0dc1055fb034c633c4e078560
    Merge: 74a6603b0 d00ab7ceb
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Thu Jul 26 09:44:56 2018 -0700
    
        Merge branch 'develop' into feature/GEODE-5212
    
    commit 74a6603b0d1e48706e709522bc85dc278735a308
    Author: Sai Boorlagadda <sb...@pivotal.io>
    Date:   Wed Jul 25 09:51:06 2018 -0700
    
        Added unit test job
    
    commit f53050d2f2d6378c371092bb788fec582b8c4e3c
    Author: Sai Boorlagadda <sb...@pivotal.io>
    Date:   Tue Jul 24 17:47:37 2018 -0700
    
        use geode-ci as input
    
    commit 8f329859b74d7280c564a0d24d374ec0a7122c9c
    Author: Sai Boorlagadda <sb...@pivotal.io>
    Date:   Tue Jul 24 17:39:17 2018 -0700
    
        use testCategory property to run GfshTest
    
    commit f44738993550875685c0ca9c66af5d1540fd9e0d
    Author: Sai Boorlagadda <sb...@pivotal.io>
    Date:   Thu Jul 19 14:41:52 2018 -0700
    
        Added WindowsGfshDistributionTest
    
    commit 72f37137c72d3b415392d69caf782752551267bf
    Author: Sai Boorlagadda <sb...@pivotal.io>
    Date:   Thu Jul 19 11:49:07 2018 -0700
    
        updated JAVA_HOME path to 181
    
        Signed-off-by: Jens Deppe <jd...@pivotal.io>
    
    commit 237c79ebdf2b9702a6b7f59fb56bd6b9f731bed4
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Wed Jul 18 14:00:03 2018 -0700
    
        run all integration tests
    
        Signed-off-by: Sai Boorlagadda <sb...@pivotal.io>
    
    commit 9d9a6dd3247ff464f5294fbc5e232177ea12a520
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Wed Jul 18 11:08:37 2018 -0700
    
        added -force to kill task
    
    commit 5090a5fd012f36e7501c5232512b686ebbf18105
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Tue Jul 17 10:34:48 2018 -0700
    
        run a single integration test
    
    commit b71c31f256962941c7b14bc26b67c2b078c89183
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Mon Jul 16 16:42:57 2018 -0700
    
        Now that we have two workers we can run parallely
    
    commit f81424d46e48ef3bf823c9627a5d014048607f18
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Fri Jul 13 16:27:52 2018 -0700
    
        Use vcap gitbash
    
    commit 2d68aff0a5be21ee9942f4ad3b14569c4df55c8f
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Fri Jul 13 10:25:56 2018 -0700
    
        Added a new pipeline for windows
    
    commit fb89326f977d9f7d466a049ba056a8f94bf36d8d
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Fri Jul 13 09:54:22 2018 -0700
    
        added two jobs for windows
    
    commit ed2daec51a1515fe13c63c97acfd5c7d49b73b3d
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Wed Jul 11 17:11:20 2018 -0700
    
        dont run in parallel
    
    commit 802850e367e08c059fd5bf525e01ecb73ed37291
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Wed Jul 11 15:58:44 2018 -0700
    
        run all tests
    
    commit 489a8be01ddb26ffcdfb72b32960c355d9125244
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Wed Jul 11 14:16:16 2018 -0700
    
        Added aggregate for running tasks parallel
    
    commit 23481d22a6f5775e2d3c7780453f5f33238391f4
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Wed Jul 11 13:34:08 2018 -0700
    
        git base doesnt seem to see PATH, so use full name
    
    commit f91eb5ea841efa46c9bbb094538e733bbaa886ba
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Wed Jul 11 06:39:58 2018 -0700
    
        GEODE-5212: Add temporary geode-ci-windows resource
    
        Signed-off-by: Dick Cavender <dc...@pivotal.io>
    
    commit 6d738f9ebf637865b2ef057362db533f47fb4a30
    Author: Dick Cavender <dc...@pivotal.io>
    Date:   Tue Jul 10 13:33:38 2018 -0700
    
        GEODE-5212: Trying to debug GCP auth failures on Windows
    
        Signed-off-by: Jens Deppe <jd...@pivotal.io>
    
    commit 5f302db3feba2fa268e79f5d72ff8a32fab64226
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Tue Jul 10 13:25:54 2018 -0700
    
        GEODE-5212: Trying to debug GCP auth failures on Windows
    
        Signed-off-by: Dick Cavender <dc...@pivotal.io>
    
    commit dc296bc4dd4bfdc215e8d7837c80bcb479a25761
    Author: Dick Cavender <dc...@pivotal.io>
    Date:   Mon Jul 9 13:50:21 2018 -0700
    
        GEODE-5212: Debug why archive uploads are not working
    
        Signed-off-by: Jens Deppe <jd...@pivotal.io>
    
    commit 0b077ce3e1bfdc58fc05906350a96bb79a5fd3bc
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 9 10:59:34 2018 -0700
    
        GEODE-5212: Hackery to speed up test cycle - only run one test
    
        Signed-off-by: Dick Cavender <dc...@pivotal.io>
    
    commit 27887ce5fef8a7b462620750ab12d37367b05bf6
    Author: Dick Cavender <dc...@pivotal.io>
    Date:   Mon Jul 9 10:36:00 2018 -0700
    
        GEODE-5212: More PATH updates
    
        Signed-off-by: Jens Deppe <jd...@pivotal.io>
    
    commit e4ca62e48b99576e1a5ed1394e30d20518877420
    Author: Jens Deppe <jd...@pivotal.io>
    Date:   Mon Jul 9 10:05:12 2018 -0700
    
        GEODE-5212: Add python path for CI archive script
    
        - Specifically required for Windows
    
        Signed-off-by: Dick Cavender <dc...@pivotal.io>
    
    commit 322f104f7ca9a7157e5056775ccc29dca9003e56
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Fri Jul 6 15:31:20 2018 -0700
    
        Added WindowsTest pipeline
    
    commit fd02602380d88e86a28d21d6d332195ccaec2e3a
    Author: Sai Boorlagadda <sa...@gmail.com>
    Date:   Fri Jul 6 14:17:25 2018 -0700
    
        Check JAVA_HOME bin for java version
---
 ci/pipelines/geode-build/base.yml               | 281 ++++++++++++++++++++
 ci/pipelines/geode-build/deploy_win_pipeline.sh |  76 ++++++
 ci/pipelines/geode-build/win.yml                | 330 ++++++++++++++++++++++++
 ci/scripts/test-archive.sh                      |  22 +-
 ci/scripts/{test-archive.sh => test-run.sh}     | 131 ++++++----
 5 files changed, 791 insertions(+), 49 deletions(-)

diff --git a/ci/pipelines/geode-build/base.yml b/ci/pipelines/geode-build/base.yml
index 9773262..77253a3 100644
--- a/ci/pipelines/geode-build/base.yml
+++ b/ci/pipelines/geode-build/base.yml
@@ -59,6 +59,14 @@ resources:
     paths:
     - ci/pipelines/geode-build/*
     - ci/scripts/*
+- name: geode-ci-windows
+  type: git
+  source:
+    depth: 1
+    uri: (( concat "https://github.com/" metadata.geode-fork "/geode.git" ))
+    branch: feature/GEODE-5212
+    paths:
+    - ci/*
 - name: geode-examples
   type: git
   source:
@@ -102,6 +110,11 @@ groups:
   - UpgradeTest
   - TestExamples
   - UpdatePassingRef
+- name: Windows
+  jobs:
+  - Build
+  - WindowsAcceptanceTests
+  - WindowsIntegrationTests
 
 jobs:
 - name: Build
@@ -206,3 +219,271 @@ jobs:
           PUBLIC_BUCKET: ((!public-bucket))
         run:
           path: geode-ci/ci/scripts/update-passing-ref.sh
+
+- name: WindowsAcceptanceTests
+  serial: true
+  public: true
+  plan:
+    - aggregate:
+      - get: geode
+        passed: [Build]
+        trigger: true
+      - get: geode-ci-windows
+      - get: geode-build-version
+        passed: [Build]
+    - task: cleanup-java-processes
+      tags: [windows-acceptance-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java
+    - task: run-acceptance-tests
+      tags: [windows-acceptance-tests]
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci-windows
+            path: geode-ci
+          - name: geode-build-version
+        outputs:
+          - name: built-geode
+        params:
+          CALL_STACK_TIMEOUT: 25200
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          PUBLIC_BUCKET: ((!public-bucket))
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_172"
+          DOCKER_COMPOSE_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker-compose.exe"
+          DOCKER_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker.exe"
+        platform: windows
+        run:
+          path: c:\Progra~1\git\bin\bash.exe
+          args:
+            - geode-ci/ci/scripts/test-run.sh
+            #- :geode-assembly:acceptanceTest :geode-connectors:acceptanceTest
+            - :geode-assembly:acceptanceTest
+            - windows-acceptancetestfiles
+      ensure:
+        aggregate:
+        - task: archive-acceptance-test-results
+          tags: [windows-acceptance-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci-windows
+                path: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_172"
+            platform: windows
+            run:
+              path: c:\Progra~1\git\bin\bash.exe
+              args:
+              - geode-ci/ci/scripts/test-archive.sh
+              - :geode-assembly:acceptanceTest
+              - windows-acceptancetestfiles
+
+- name: WindowsIntegrationTests
+  serial: true
+  public: true
+  plan:
+    - aggregate:
+      - get: geode
+        passed: [Build]
+        trigger: true
+      - get: geode-ci-windows
+      - get: geode-build-version
+        passed: [Build]
+    - task: cleanup-java-processes
+      tags: [windows-integration-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java
+    - task: run-integration-tests
+      tags: [windows-integration-tests]
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci-windows
+            path: geode-ci
+          - name: geode-build-version
+        outputs:
+          - name: built-geode
+        params:
+          CALL_STACK_TIMEOUT: 25200
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          PUBLIC_BUCKET: ((!public-bucket))
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_172"
+        platform: windows
+        run:
+          path: c:\Progra~1\git\bin\bash.exe
+          args:
+            - geode-ci/ci/scripts/test-run.sh
+            - integrationTest
+            - windows-integrationtestfiles
+      ensure:
+        aggregate:
+        - task: archive-integration-test-results
+          tags: [windows-integration-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci-windows
+                path: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_172"
+            platform: windows
+            run:
+              path: c:\Progra~1\git\bin\bash.exe
+              args:
+                - geode-ci/ci/scripts/test-archive.sh
+                - integrationTest
+                - windows-integrationtestfiles
+
+- name: DistributedTest
+  serial: true
+  public: true
+  plan:
+    - aggregate:
+      - get: geode
+        passed: [Build]
+        trigger: true
+      - get: geode-ci
+      - get: geode-build-version
+        passed: [Build]
+      - get: docker-geode-build-image
+        params:
+          rootfs: true
+    - aggregate:
+      - task: run-distributed-core
+        image: docker-geode-build-image
+        tags: [large]
+        privileged: true
+        timeout: 8h
+        config:
+          inputs:
+            - name: geode
+            - name: geode-ci
+            - name: docker-geode-build-image
+            - name: geode-build-version
+          platform: linux
+          outputs:
+            - name: built-geode
+          params:
+            MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+            SERVICE_ACCOUNT: ((!concourse-gcp-account))
+            PUBLIC_BUCKET: ((!public-bucket))
+            PARALLEL_DUNIT: true
+            DUNIT_PARALLEL_FORKS: 7
+            CALL_STACK_TIMEOUT: 25200
+          run:
+            args:
+            - geode-core:distributedTest
+            - distributedtestcore
+            path: geode-ci/ci/scripts/test-run.sh
+        on_failure:
+          aggregate:
+            - put: send-notification-email
+              params:
+                subject: built-geode/subject
+                body: built-geode/body
+        ensure:
+          aggregate:
+          - task: archive-results-core
+            image: docker-geode-build-image
+            config:
+              inputs:
+                - name: geode
+                - name: geode-ci
+                - name: geode-build-version
+                - name: built-geode
+              platform: linux
+              params:
+                MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+                SERVICE_ACCOUNT: ((!concourse-gcp-account))
+                PUBLIC_BUCKET: ((!public-bucket))
+              run:
+                args:
+                - geode-core:distributedTest
+                - distributedtestcore
+                path: geode-ci/ci/scripts/test-archive.sh
+      - task: run-distributed-everything-else
+        image: docker-geode-build-image
+        tags: [large]
+        privileged: true
+        timeout: 8h
+        config:
+          inputs:
+            - name: geode
+            - name: geode-ci
+            - name: docker-geode-build-image
+            - name: geode-build-version
+          platform: linux
+          outputs:
+            - name: built-geode
+          params:
+            MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+            SERVICE_ACCOUNT: ((!concourse-gcp-account))
+            PUBLIC_BUCKET: ((!public-bucket))
+            PARALLEL_DUNIT: true
+            DUNIT_PARALLEL_FORKS: 7
+            CALL_STACK_TIMEOUT: 25200
+            GRADLE_TASK_OPTIONS: -x geode-core:distributedTest
+          run:
+            args:
+            - distributedTest
+            - distributedtesteverythingelse
+            path: geode-ci/ci/scripts/test-run.sh
+        on_failure:
+          aggregate:
+            - put: send-notification-email
+              params:
+                subject: built-geode/subject
+                body: built-geode/body
+        ensure:
+          aggregate:
+          - task: archive-results-everythingelse
+            image: docker-geode-build-image
+            config:
+              inputs:
+                - name: geode
+                - name: geode-ci
+                - name: geode-build-version
+                - name: built-geode
+              platform: linux
+              params:
+                MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+                SERVICE_ACCOUNT: ((!concourse-gcp-account))
+                PUBLIC_BUCKET: ((!public-bucket))
+              run:
+                args:
+                - disitributedTest
+                - distributedtesteverythingelse
+                path: geode-ci/ci/scripts/test-archive.sh
diff --git a/ci/pipelines/geode-build/deploy_win_pipeline.sh b/ci/pipelines/geode-build/deploy_win_pipeline.sh
new file mode 100755
index 0000000..8dc4f9e
--- /dev/null
+++ b/ci/pipelines/geode-build/deploy_win_pipeline.sh
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+  SOURCE="$(readlink "$SOURCE")"
+  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
+if ! [ -x "$(command -v spruce)" ]; then
+    echo "Spruce must be installed for pipeline deployment to work."
+    echo "For macos: 'brew tap starkandwayne/cf; brew install spruce'"
+    echo "For Ubuntu: follow the instructions at https://github.com/geofffranks/spruce"
+    echo ""
+    exit 1
+else
+    SPRUCE=$(which spruce || true)
+fi
+
+set -e
+
+if [ -z "${GEODE_BRANCH}" ]; then
+  GEODE_BRANCH=$(git rev-parse --abbrev-ref HEAD)
+fi
+
+if [ "${GEODE_BRANCH}" = "HEAD" ]; then
+  echo "Unable to determine branch for deployment. Quitting..."
+  exit 1
+fi
+
+SANITIZED_GEODE_BRANCH=$(echo ${GEODE_BRANCH} | tr "/" "-")
+
+BIN_DIR=${OUTPUT_DIRECTORY}/bin
+TMP_DIR=${OUTPUT_DIRECTORY}/tmp
+mkdir -p ${BIN_DIR} ${TMP_DIR}
+curl -o ${BIN_DIR}/fly "https://concourse.apachegeode-ci.info/api/v1/cli?arch=amd64&platform=darwin"
+chmod +x ${BIN_DIR}/fly
+
+PATH=${PATH}:${BIN_DIR}
+
+echo "Spruce branch-name into resources"
+rm -f ${TMP_DIR}/final-win.yml
+${SPRUCE} merge --prune metadata \
+  ${SCRIPTDIR}/win.yml \
+  <(echo "metadata:"; \
+    echo "  geode-build-branch: ${GEODE_BRANCH}"; \
+    echo "  geode-fork: ${GEODE_FORK}"; \
+    echo "  ") \
+  > ${TMP_DIR}/final-win.yml
+
+TARGET="geode"
+
+TEAM="staging"
+if [[ "${GEODE_BRANCH}" == "develop" ]] || [[ ${GEODE_BRANCH} =~ ^release/* ]]; then
+  TEAM="main"
+fi
+
+#fly login -t ${TARGET} -n ${TEAM} -c https://concourse.apachegeode-ci.info -u ${CONCOURSE_USERNAME} -p ${CONCOURSE_PASSWORD}
+fly -t ${TARGET} set-pipeline --pipeline windows --config ${TMP_DIR}/final-win.yml
diff --git a/ci/pipelines/geode-build/win.yml b/ci/pipelines/geode-build/win.yml
new file mode 100644
index 0000000..d41363b
--- /dev/null
+++ b/ci/pipelines/geode-build/win.yml
@@ -0,0 +1,330 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+
+resource_types:
+  - name: gcs-resource
+    type: docker-image
+    source:
+      repository: frodenas/gcs-resource
+
+resources:
+- name: geode
+  type: git
+  source:
+    uri: (( concat "https://github.com/" metadata.geode-fork "/geode.git" ))
+    branch: develop
+    ignore_paths:
+    - ci/*
+- name: geode-ci
+  type: git
+  source:
+    depth: 1
+    uri: (( concat "https://github.com/" metadata.geode-fork "/geode.git" ))
+    branch: feature/GEODE-5212
+    paths:
+    - ci/*
+- name: geode-build-version
+  type: semver
+  source:
+    driver: gcs
+    bucket: ((!concourse-bucket))
+    key: (( concat metadata.geode-build-branch "/version" ))
+    json_key: ((!concourse-gcp-key))
+    initial_version: 1.3.0
+
+jobs:
+- name: WindowsUnitTests
+  serial: true
+  plan:
+    - aggregate:
+      - get: geode
+        trigger: true
+      - get: geode-ci
+      - get: geode-build-version
+    - task: cleanup-java-processes
+      tags: [windows-unit-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java -force
+            exit 0
+    - task: run-unit-tests
+      tags: [windows-unit-tests]
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci
+          - name: geode-build-version
+        outputs:
+          - name: built-geode
+        params:
+          CALL_STACK_TIMEOUT: 25200
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          PUBLIC_BUCKET: ((!public-bucket))
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+          DOCKER_COMPOSE_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker-compose.exe"
+          DOCKER_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker.exe"
+        platform: windows
+        run:
+          path: bash
+          args:
+            - geode-ci/ci/scripts/test-run.sh
+            - test
+            - windows-unittestfiles
+      ensure:
+        aggregate:
+        - task: archive-unit-test-results
+          tags: [windows-unit-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+            platform: windows
+            run:
+              path: bash
+              args:
+              - geode-ci/ci/scripts/test-archive.sh
+              - test
+              - windows-unittestfiles
+
+- name: WindowsAcceptanceTests
+  serial: true
+  plan:
+    - aggregate:
+      - get: geode
+        trigger: true
+      - get: geode-ci
+      - get: geode-build-version
+    - task: cleanup-java-processes
+      tags: [windows-acceptance-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java -force
+            exit 0
+    - task: run-acceptance-tests
+      tags: [windows-acceptance-tests]
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci
+          - name: geode-build-version
+        outputs:
+          - name: built-geode
+        params:
+          CALL_STACK_TIMEOUT: 25200
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          PUBLIC_BUCKET: ((!public-bucket))
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+          DOCKER_COMPOSE_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker-compose.exe"
+          DOCKER_LOCATION: "C:\\Progra~1\\Docker\\Docker\\resources\\bin\\docker.exe"
+        platform: windows
+        run:
+          path: bash
+          args:
+            - geode-ci/ci/scripts/test-run.sh
+            #- :geode-assembly:acceptanceTest :geode-connectors:acceptanceTest
+            - :geode-assembly:acceptanceTest
+            - windows-acceptancetestfiles
+      ensure:
+        aggregate:
+        - task: archive-acceptance-test-results
+          tags: [windows-acceptance-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+            platform: windows
+            run:
+              path: bash
+              args:
+              - geode-ci/ci/scripts/test-archive.sh
+              - :geode-assembly:acceptanceTest
+              - windows-acceptancetestfiles
+
+- name: WindowsIntegrationTests
+  serial: true
+  plan:
+    - aggregate:
+      - get: geode
+        trigger: true
+      - get: geode-ci
+      - get: geode-build-version
+    - task: cleanup-java-processes
+      tags: [windows-integration-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java -force
+            exit 0
+    - task: run-integration-tests
+      tags: [windows-integration-tests]
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci
+          - name: geode-build-version
+        outputs:
+          - name: built-geode
+        params:
+          CALL_STACK_TIMEOUT: 25200
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          PUBLIC_BUCKET: ((!public-bucket))
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+        platform: windows
+        run:
+          path: bash
+          args:
+            - geode-ci/ci/scripts/test-run.sh
+            - integrationTest
+            - windows-integrationtestfiles
+      ensure:
+        aggregate:
+        - task: archive-integration-test-results
+          tags: [windows-integration-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+            platform: windows
+            run:
+              path: bash
+              args:
+                - geode-ci/ci/scripts/test-archive.sh
+                - integrationTest
+                - windows-integrationtestfiles
+
+- name: WindowsGfshDistributedTest
+  serial: true
+  public: true
+  plan:
+    - aggregate:
+      - get: geode
+        trigger: true
+      - get: geode-ci
+      - get: geode-build-version
+    - task: cleanup-java-processes
+      tags: [windows-distributed-tests]
+      config:
+        platform: windows
+        run:
+          path: powershell
+          args:
+          - -command
+          - |
+            gwmi win32_process -filter 'name = "java.exe"' | select commandline | format-list
+            kill -name java -force
+            exit 0
+    - task: run-gfsh-distributed-test
+      tags: [windows-distributed-tests]
+      privileged: true
+      timeout: 8h
+      config:
+        inputs:
+          - name: geode
+          - name: geode-ci
+          - name: geode-build-version
+        platform: windows
+        outputs:
+          - name: built-geode
+        params:
+          DUNIT_PARALLEL_FORKS: 0
+          MAINTENANCE_VERSION: develop
+          PARALLEL_DUNIT: false
+          SERVICE_ACCOUNT: ((!concourse-gcp-account))
+          PUBLIC_BUCKET: ((!public-bucket))
+          CALL_STACK_TIMEOUT: 25200
+          JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+        run:
+          path: bash
+          args:
+          - geode-ci/ci/scripts/test-run.sh
+          - distributedTest
+          - windows-gfshdistributedtest
+          - org.apache.geode.test.junit.categories.GfshTest
+      ensure:
+        aggregate:
+        - task: archive-results-core
+          tags: [windows-distributed-tests]
+          config:
+            inputs:
+              - name: geode
+              - name: geode-ci
+              - name: geode-build-version
+              - name: built-geode
+            platform: windows
+            params:
+              MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+              SERVICE_ACCOUNT: ((!concourse-gcp-account))
+              PUBLIC_BUCKET: ((!public-bucket))
+              JAVA_HOME: "C:\\progra~1\\java\\jdk1.8.0_181"
+            run:
+              path: bash
+              args:
+              - geode-ci/ci/scripts/test-archive.sh
+              - distributedTest
+              - windows-gfshdistributedtest
\ No newline at end of file
diff --git a/ci/scripts/test-archive.sh b/ci/scripts/test-archive.sh
index fcdd718..076f0fa 100755
--- a/ci/scripts/test-archive.sh
+++ b/ci/scripts/test-archive.sh
@@ -16,7 +16,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-set -e
+set -e -x
 
 export TERM=${TERM:-dumb}
 export BUILDROOT=$(pwd)
@@ -33,6 +33,16 @@ if [ -e "${GEODE_PULL_REQUEST_ID_FILE}" ]; then
   GEODE_PULL_REQUEST_ID=$(cat ${GEODE_PULL_REQUEST_ID_FILE})
 fi
 
+GCLOUD=gcloud
+GSUTIL=gsutil
+UNAME_O=$(uname -o)
+# Check for Windows (MINGW64) environment
+if [ ${UNAME_O} = "Msys" ]; then
+  GCLOUD=gcloud.cmd
+  GSUTIL=gsutil.cmd
+fi
+
+env | sort
 
 GEODE_BUILD_VERSION_FILE=${BUILDROOT}/geode-build-version/number
 
@@ -82,8 +92,12 @@ echo "TMPDIR = ${TMPDIR}"
 echo "GRADLE_TASK = ${GRADLE_TASK}"
 echo "BASE_FILENAME = ${BASE_FILENAME}"
 
-gcloud config set account ${SERVICE_ACCOUNT}
+set +e
+$GCLOUD info
+$GCLOUD config set account ${SERVICE_ACCOUNT}
 
+$GSUTIL ls gs://files.apachegeode-ci.info/
+set -e
 
 export FILENAME=${BASE_FILENAME}-${FULL_PRODUCT_VERSION}.tgz
 
@@ -114,7 +128,7 @@ if [ ! -d "${GEODE_BUILD}/build/reports/combined" ]; then
 fi
 
 pushd ${GEODE_BUILD}/build/reports/combined
-gsutil -q -m cp -r * gs://${TEST_RESULTS_DESTINATION}
+$GSUTIL -q -m cp -r * gs://${TEST_RESULTS_DESTINATION}
 popd
 
 echo ""
@@ -123,7 +137,7 @@ printf "\033[92mhttp://${TEST_RESULTS_DESTINATION}\033[0m\n"
 printf "\033[92m=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\033[0m\n"
 printf "\n"
 
-gsutil cp ${DEST_DIR}/${FILENAME} gs://${TEST_ARTIFACTS_DESTINATION}
+$GSUTIL cp ${DEST_DIR}/${FILENAME} gs://${TEST_ARTIFACTS_DESTINATION}
 
 printf "\033[92mTest artifacts from this job are available at:\033[0m\n"
 printf "\n"
diff --git a/ci/scripts/test-archive.sh b/ci/scripts/test-run.sh
similarity index 50%
copy from ci/scripts/test-archive.sh
copy to ci/scripts/test-run.sh
index fcdd718..c739d65 100755
--- a/ci/scripts/test-archive.sh
+++ b/ci/scripts/test-run.sh
@@ -17,25 +17,23 @@
 # limitations under the License.
 
 set -e
+set -x
 
 export TERM=${TERM:-dumb}
 export BUILDROOT=$(pwd)
 export DEST_DIR=${BUILDROOT}/built-geode
 export GRADLE_TASK=${1}
-export SANITIZED_GRADLE_TASK=${GRADLE_TASK##*:}
 export BASE_FILENAME=${2}
-export TMPDIR=${DEST_DIR}/tmp
+export GRADLE_TEST_CATEGORY=${3}
 export GEODE_BUILD=${DEST_DIR}/test
 export GEODE_BUILD_VERSION_NUMBER=$(grep "versionNumber *=" geode/gradle.properties | awk -F "=" '{print $2}' | tr -d ' ')
-export BUILD_TIMESTAMP=$(date +%s)
+
+GEODE_BUILD_VERSION_FILE=${BUILDROOT}/geode-build-version/number
 GEODE_PULL_REQUEST_ID_FILE=${BUILDROOT}/geode/.git/id
 if [ -e "${GEODE_PULL_REQUEST_ID_FILE}" ]; then
   GEODE_PULL_REQUEST_ID=$(cat ${GEODE_PULL_REQUEST_ID_FILE})
 fi
 
-
-GEODE_BUILD_VERSION_FILE=${BUILDROOT}/geode-build-version/number
-
 if [ ! -e "${GEODE_BUILD_VERSION_FILE}" ] && [ -z "${GEODE_PULL_REQUEST_ID}" ]; then
   echo "${GEODE_BUILD_VERSION_FILE} file does not exist. Concourse is probably not configured correctly."
   exit 1
@@ -48,6 +46,12 @@ fi
 EMAIL_SUBJECT="${BUILDROOT}/built-geode/subject"
 EMAIL_BODY="${BUILDROOT}/built-geode/body"
 
+echo "Geode unit tests  '\${BUILD_PIPELINE_NAME}/\${BUILD_JOB_NAME}' took too long to execute" > $EMAIL_SUBJECT
+echo "Pipeline results can be found at:" >$EMAIL_BODY
+echo "" >>$EMAIL_BODY
+echo "Concourse: \${ATC_EXTERNAL_URL}/teams/\${BUILD_TEAM_NAME}/pipelines/\${BUILD_PIPELINE_NAME}/jobs/\${BUILD_JOB_NAME}/builds/\${BUILD_NAME}" >>$EMAIL_BODY
+echo "" >>$EMAIL_BODY
+
 # Called by trap when the script is exiting
 function error_exit() {
   echo "Geode unit tests completed in '\${BUILD_PIPELINE_NAME}/\${BUILD_JOB_NAME}' with non-zero exit code" > $EMAIL_SUBJECT
@@ -58,73 +62,110 @@ function error_exit() {
 }
 
 trap error_exit ERR
-
 if [ -z "${GEODE_PULL_REQUEST_ID}" ]; then
-CONCOURSE_VERSION=$(cat ${GEODE_BUILD_VERSION_FILE})
+  CONCOURSE_VERSION=$(cat ${GEODE_BUILD_VERSION_FILE})
   CONCOURSE_PRODUCT_VERSION=${CONCOURSE_VERSION%%-*}
   GEODE_PRODUCT_VERSION=${GEODE_BUILD_VERSION_NUMBER}
   CONCOURSE_BUILD_SLUG=${CONCOURSE_VERSION##*-}
   BUILD_ID=${CONCOURSE_VERSION##*.}
   FULL_PRODUCT_VERSION=${GEODE_PRODUCT_VERSION}-${CONCOURSE_BUILD_SLUG}
-
   echo "Concourse VERSION is ${CONCOURSE_VERSION}"
-  echo "Geode product VERSION is ${GEODE_PRODUCT_VERSION}"
+  echo "Product VERSION is ${FULL_PRODUCT_VERSION}"
   echo "Build ID is ${BUILD_ID}"
 else
   FULL_PRODUCT_VERSION="geode-pr-${GEODE_PULL_REQUEST_ID}"
 fi
 
+printf "\nUsing the following JDK:"
+if [ -n "${JAVA_HOME}" ]; then
+  ${JAVA_HOME}/bin/java -version
+else
+  java -version
+fi
+printf "\n\n"
 
 directories_file=${DEST_DIR}/artifact_directories
-mkdir -p ${TMPDIR}
 
-echo "TMPDIR = ${TMPDIR}"
 echo "GRADLE_TASK = ${GRADLE_TASK}"
 echo "BASE_FILENAME = ${BASE_FILENAME}"
 
-gcloud config set account ${SERVICE_ACCOUNT}
+DOCKER_RESOURCE="docker-geode-build-image"
+DOCKER_PIDFILE="/var/run/docker.pid"
+
+if [ -e ${DOCKER_RESOURCE}/rootfs.tar ]; then
+  if [ -e /usr/local/bin/initdocker ]; then
+    echo "Initializing Docker environment..."
+    /usr/local/bin/initdocker || true
+
+    # Stuff like ENV settings don't automatically get imported
+    CHANGE=()
+    for i in $(jq -r '.env | .[]' ${DOCKER_RESOURCE}/metadata.json); do
+      CHANGE+=( $(echo "$i" | awk -F= '{printf("--change \"ENV %s %s\"", $1, $2)}') )
+    done
+
+    REPO=$(cat ${DOCKER_RESOURCE}/repository)
+    echo "Importing Docker image..."
+    eval "docker import ${CHANGE[@]} ${DOCKER_RESOURCE}/rootfs.tar $REPO"
+    DUNIT_DOCKER_IMAGE="-PdunitDockerImage=${REPO}"
+    echo "Docker initialization complete."
+  fi
+fi
 
+DEFAULT_GRADLE_TASK_OPTIONS="--no-daemon -x javadoc -x spotlessCheck"
 
-export FILENAME=${BASE_FILENAME}-${FULL_PRODUCT_VERSION}.tgz
+if [[ -n "${GRADLE_TEST_CATEGORY}" ]]; then
+  GRADLE_TASK_OPTIONS="-PtestCategory=${GRADLE_TEST_CATEGORY}"
+fi
 
-pushd ${GEODE_BUILD}
+mkdir -p ${GEODE_BUILD}
+if [ -v CALL_STACK_TIMEOUT ]; then
+  geode-ci/ci/scripts/capture-call-stacks.sh  ${CALL_STACK_TIMEOUT} &
+fi
 
-  set +e
-  ./gradlew combineReports
-  find . -type d -name "reports" > ${directories_file}
-  find . -type d -name "test-results" >> ${directories_file}
-  (find . -type d -name "*Test" | grep "build/[^/]*Test$") >> ${directories_file}
-  find . -name "*-progress*txt" >> ${directories_file}
-  find . -type d -name "callstacks" >> ${directories_file}
-  echo "Collecting the following artifacts..."
-  cat ${directories_file}
-  echo ""
-  tar zcf ${DEST_DIR}/${FILENAME} -T ${directories_file}
+pushd geode
+  tar cf - * | (cd ${GEODE_BUILD}; tar xpf -)
 popd
 
-ARTIFACTS_DESTINATION="${PUBLIC_BUCKET}/builds/${FULL_PRODUCT_VERSION}"
-TEST_RESULTS_DESTINATION="${ARTIFACTS_DESTINATION}/test-results/${SANITIZED_GRADLE_TASK}/${BUILD_TIMESTAMP}/"
-TEST_ARTIFACTS_DESTINATION="${ARTIFACTS_DESTINATION}/test-artifacts/${BUILD_TIMESTAMP}/"
-
+export FILENAME=${BASE_FILENAME}-${FULL_PRODUCT_VERSION}.tgz
 
-if [ ! -d "${GEODE_BUILD}/build/reports/combined" ]; then
-    echo "No tests exist, compile failed."
-    mkdir -p ${GEODE_BUILD}/build/reports/combined
-    echo "<html><head><title>No Test Results Were Captured</title></head><body><h1>No Test Results Were Captured</h1></body></html>" > ${GEODE_BUILD}/build/reports/combined/index.html
+if [[ -n "${PARALLEL_DUNIT}" && "${PARALLEL_DUNIT}" == "true" ]]; then
+  PARALLEL_DUNIT="-PparallelDunit"
+  if [ -n "${DUNIT_PARALLEL_FORKS}" ]; then
+    DUNIT_PARALLEL_FORKS="-PdunitParallelForks=${DUNIT_PARALLEL_FORKS}"
+  fi
+else
+  PARALLEL_DUNIT=""
+  DUNIT_PARALLEL_FORKS=""
 fi
 
-pushd ${GEODE_BUILD}/build/reports/combined
-gsutil -q -m cp -r * gs://${TEST_RESULTS_DESTINATION}
+pushd ${GEODE_BUILD}
+  set +e
+  echo "Running tests"
+  set -x
+
+#    ./gradlew --no-daemon -x javadoc -x spotlessCheck :geode-assembly:acceptanceTest --tests org.apache.geode.management.internal.cli.commands.PutCommandWithJsonTest
+  ./gradlew ${PARALLEL_DUNIT} \
+      ${DUNIT_PARALLEL_FORKS} \
+      ${DUNIT_DOCKER_IMAGE} \
+      ${DEFAULT_GRADLE_TASK_OPTIONS} \
+      ${GRADLE_TASK_OPTIONS} \
+      ${GRADLE_TASK}
+  export GRADLE_EXIT_STATUS=$?
+  set +x
 popd
 
-echo ""
-printf "\033[92m=-=-=-=-=-=-=-=-=-=-=-=-=-=  Test Results Website =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\033[0m\n"
-printf "\033[92mhttp://${TEST_RESULTS_DESTINATION}\033[0m\n"
-printf "\033[92m=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\033[0m\n"
-printf "\n"
+echo "*************************************************************"
+echo "Results information is located in the 'archive-results' task"
+echo "*************************************************************"
+
+echo "GRADLE_EXIT_STATUS is ${GRADLE_EXIT_STATUS}"
 
-gsutil cp ${DEST_DIR}/${FILENAME} gs://${TEST_ARTIFACTS_DESTINATION}
 
-printf "\033[92mTest artifacts from this job are available at:\033[0m\n"
-printf "\n"
-printf "\033[92mhttp://${TEST_ARTIFACTS_DESTINATION}${FILENAME}\033[0m\n"
+if [ -e ${DOCKER_PIDFILE} ]; then
+  kill $(cat ${DOCKER_PIDFILE})
+fi
+
+if [[ "${GRADLE_EXIT_STATUS}" != "0" && "${GRADLE_TASK}" == "test" ]]; then
+  error_exit
+fi
+exit ${GRADLE_EXIT_STATUS}