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}