This is an automated email from the ASF dual-hosted git repository.
abaker pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 2e5bff9 GEODE-5380: create PR pipeline that integrates with GitHub
pull requests
2e5bff9 is described below
commit 2e5bff9dd4f57978d3196dcc60afd4aed5c3dce5
Author: Robert Houghton <[email protected]>
AuthorDate: Mon Apr 16 10:46:23 2018 -0700
GEODE-5380: create PR pipeline that integrates with GitHub pull requests
Single pipeline that runs all GitHub PRs. Status of each job is posted
back as a 'status' to the commit of the PR as they complete, like
Travis.
Runs in parallel.
PRs have links directly to their job in Concourse.
Signed-off-by: Sean Goller <[email protected]>
I hate yaml.
So close no matter how far
Couldn't be much more from the heart
forever trusting who we are
and whitespace just matters.
---
ci/pipelines/deploy_meta.sh | 15 +-
ci/pipelines/meta.yml | 38 +++-
ci/pipelines/pull-request/base.yml | 277 ++++++++++++++++++++++++
ci/pipelines/pull-request/deploy_pr_pipeline.sh | 94 ++++++++
ci/pipelines/pull-request/pr-template.yml | 108 +++++++++
ci/scripts/build.sh | 31 ++-
ci/scripts/test-archive.sh | 29 ++-
ci/scripts/test-run.sh | 31 ++-
8 files changed, 583 insertions(+), 40 deletions(-)
diff --git a/ci/pipelines/deploy_meta.sh b/ci/pipelines/deploy_meta.sh
index fa99770..93ff869 100755
--- a/ci/pipelines/deploy_meta.sh
+++ b/ci/pipelines/deploy_meta.sh
@@ -19,8 +19,21 @@ GEODE_BRANCH=$(git rev-parse --abbrev-ref HEAD)
SANITIZED_GEODE_BRANCH=$(echo ${GEODE_BRANCH} | tr "/" "-")
TARGET=geode
GEODE_FORK=${1:-apache}
+TEAM=$(fly targets | grep ^${TARGET} | awk '{print $3}')
+
+PUBLIC=true
echo "Deploying pipline for ${GEODE_FORK}/${GEODE_BRANCH}"
+if [ "${TEAM}" = "staging" ]; then
+ PUBLIC=false
+fi
+
set -x
-fly -t ${TARGET} set-pipeline -p meta-${SANITIZED_GEODE_BRANCH} -c meta.yml
--var geode-build-branch=${GEODE_BRANCH} --var geode-fork=${GEODE_FORK}
+fly -t ${TARGET} set-pipeline \
+ -p meta-${SANITIZED_GEODE_BRANCH} \
+ -c meta.yml \
+ --var geode-build-branch=${GEODE_BRANCH} \
+ --var geode-fork=${GEODE_FORK} \
+ --var concourse-team=${TEAM} \
+ --yaml-var public-pipelines=${PUBLIC}
diff --git a/ci/pipelines/meta.yml b/ci/pipelines/meta.yml
index a7ee017..e2929b1 100644
--- a/ci/pipelines/meta.yml
+++ b/ci/pipelines/meta.yml
@@ -29,7 +29,7 @@ resources:
target: https://concourse.apachegeode-ci.info
insecure: "true"
teams:
- - name: main
+ - name: ((!concourse-team))
username: ((!concourse-username))
password: ((!concourse-password))
- name: geode-pipeline
@@ -63,7 +63,7 @@ resources:
jobs:
- name: set-pipeline
serial: true
- public: true
+ public: ((!public-pipelines))
plan:
- get: geode-pipeline
trigger: true
@@ -82,12 +82,38 @@ jobs:
GEODE_FORK: ((!geode-fork))
CONCOURSE_USERNAME: ((!concourse-username))
CONCOURSE_PASSWORD: ((!concourse-password))
+ CONCOURSE_TEAM: ((!concourse-team))
run:
path: geode-pipeline/ci/pipelines/geode-build/deploy_pipeline.sh
+- name: set-pr-pipeline
+ serial: true
+ public: ((!public-pipelines))
+ plan:
+ - get: geode-pipeline
+ trigger: true
+ - get: apachegeode-build-concourse-docker-image
+ - task: deploy-pr
+ image: apachegeode-build-concourse-docker-image
+ config:
+ inputs:
+ - name: geode-pipeline
+ outputs:
+ - name: results
+ platform: linux
+ params:
+ OUTPUT_DIRECTORY: results
+ GEODE_BRANCH: ((!geode-build-branch))
+ GEODE_FORK: ((!geode-fork))
+ CONCOURSE_USERNAME: ((!concourse-username))
+ CONCOURSE_PASSWORD: ((!concourse-password))
+ CONCOURSE_TEAM: ((!concourse-team))
+ run:
+ path: geode-pipeline/ci/pipelines/pull-request/deploy_pr_pipeline.sh
+
- name: set-docker-images-pipeline
serial: true
- public: true
+ public: ((!public-pipelines))
plan:
- get: geode-docker-images-pipeline
trigger: true
@@ -95,11 +121,11 @@ jobs:
params:
pipelines:
- name: docker-images
- team: main
+ team: ((!concourse-team))
config_file:
geode-docker-images-pipeline/ci/pipelines/docker-images.yml
- name: set-metrics-pipeline
serial: true
- public: true
+ public: ((!public-pipelines))
plan:
- get: geode-metrics-pipeline
trigger: true
@@ -107,5 +133,5 @@ jobs:
params:
pipelines:
- name: develop-metrics
- team: main
+ team: ((!concourse-team))
config_file: geode-metrics-pipeline/ci/pipelines/metrics.yml
diff --git a/ci/pipelines/pull-request/base.yml
b/ci/pipelines/pull-request/base.yml
new file mode 100644
index 0000000..60adff1
--- /dev/null
+++ b/ci/pipelines/pull-request/base.yml
@@ -0,0 +1,277 @@
+#
+# 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
+ - name: email
+ type: docker-image
+ source:
+ repository: pcfseceng/email-resource
+ - name: pull-request
+ type: docker-image
+ source:
+ repository: jtarchie/pr
+
+resources:
+- name: docker-geode-build-image
+ type: docker-image
+ source:
+ username: ((!docker-username))
+ password: ((!docker-password))
+ repository: gcr.io/apachegeode-ci/((!docker-image-name))
+ tag: latest
+
+- name: geode
+ type: pull-request
+ source:
+ access_token: ((!github-pr-access-token))
+ repo: (( concat metadata.geode-fork "/geode" ))
+ base: develop
+ ignore_paths:
+ - geode-docs/*
+ - geode-book/*
+
+- name: send-notification-email
+ type: email
+ source:
+ smtp:
+ host: ((!source-email-server))
+ port: "587"
+ username: ((!source-email-username))
+ password: ((!source-email-password))
+ from: ((!source-email-address))
+ to: [ ((!notification-email-address)) ]
+
+groups:
+- name: main
+ jobs:
+ - Build
+ - DistributedTest
+ - AcceptanceTest
+ - IntegrationTest
+ - FlakyTest
+ - UITests
+
+jobs:
+- name: Build
+ serial: false
+ public: true
+ plan:
+ - aggregate:
+ - get: geode
+ trigger: true
+ version: every
+ params:
+ fetch_merge: true
+ git:
+ depth: 100
+ - get: docker-geode-build-image
+ params:
+ rootfs: true
+ # Unmerged pull request SHA, for writing status into GitHub
+ - get: geode-unmerged-request
+ resource: geode
+ version: every
+ params:
+ fetch_merge: false
+ - aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ context: $BUILD_JOB_NAME
+ status: pending
+
+ - task: build
+ image: docker-geode-build-image
+ config:
+ platform: linux
+ inputs:
+ - name: geode
+ outputs:
+ - name: built-geode
+ - name: results
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ path: geode/ci/scripts/build.sh
+ on_failure:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ status: failure
+ context: $BUILD_JOB_NAME
+ - put: send-notification-email
+ params:
+ subject: results/subject
+ body: results/body
+ on_success:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ status: success
+ context: $BUILD_JOB_NAME
+
+- name: DistributedTest
+ serial: false
+ public: true
+ plan:
+ - aggregate:
+ - get: geode
+ trigger: true
+ version: every
+ params:
+ fetch_merge: true
+ git:
+ depth: 100
+ - get: docker-geode-build-image
+ params:
+ rootfs: true
+ # Unmerged pull request SHA, for writing status into GitHub
+ - get: geode-unmerged-request
+ resource: geode
+ version: every
+ params:
+ fetch_merge: false
+
+ - aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ context: $BUILD_JOB_NAME
+ status: pending
+
+ - task: run-distributed-core
+ image: docker-geode-build-image
+ tags: [large]
+ privileged: true
+ timeout: 8h
+ config:
+ inputs:
+ - name: geode
+ - name: docker-geode-build-image
+ 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/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: 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/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: docker-geode-build-image
+ 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/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: 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/scripts/test-archive.sh
+ on_failure:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ status: failure
+ context: $BUILD_JOB_NAME
+ on_success:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ context: $BUILD_JOB_NAME
+ status: success
diff --git a/ci/pipelines/pull-request/deploy_pr_pipeline.sh
b/ci/pipelines/pull-request/deploy_pr_pipeline.sh
new file mode 100755
index 0000000..85abd73
--- /dev/null
+++ b/ci/pipelines/pull-request/deploy_pr_pipeline.sh
@@ -0,0 +1,94 @@
+#!/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 )"
+GEODEBUILDDIR="${SCRIPTDIR}/../geode-build"
+
+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=linux"
+chmod +x ${BIN_DIR}/fly
+
+PATH=${PATH}:${BIN_DIR}
+
+for i in ${GEODEBUILDDIR}/test-stubs/*.yml; do
+ X=$(basename $i)
+ echo "Merging ${i} into ${TMP_DIR}/${X}"
+ ${SPRUCE} merge --prune metadata \
+ <(echo "metadata:"; \
+ echo " geode-build-branch: ${GEODE_BRANCH}"; \
+ echo " geode-fork: ${GEODE_FORK}") \
+ ${SCRIPTDIR}/pr-template.yml \
+ ${i} > ${TMP_DIR}/${X}
+done
+
+echo "Spruce branch-name into resources"
+${SPRUCE} merge --prune metadata \
+ ${SCRIPTDIR}/base.yml \
+ <(echo "metadata:"; \
+ echo " geode-build-branch: ${GEODE_BRANCH}"; \
+ echo " geode-fork: ${GEODE_FORK}"; \
+ echo " ") \
+ ${TMP_DIR}/*.yml > ${TMP_DIR}/final.yml
+
+
+TARGET="geode"
+
+TEAM=${CONCOURSE_TEAM}
+
+#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 \
+ --non-interactive \
+ --pipeline ${SANITIZED_GEODE_BRANCH} \
+ --config ${TMP_DIR}/final.yml \
+ --var concourse-team=${TEAM}
+
diff --git a/ci/pipelines/pull-request/pr-template.yml
b/ci/pipelines/pull-request/pr-template.yml
new file mode 100644
index 0000000..f8aa3fd
--- /dev/null
+++ b/ci/pipelines/pull-request/pr-template.yml
@@ -0,0 +1,108 @@
+# 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.
+
+---
+
+jobs:
+- name: (( grab metadata.job.name ))
+ serial: false
+ public: true
+ plan:
+ - aggregate:
+ - get: geode
+ trigger: true
+ version: every
+ params:
+ fetch_merge: true
+ git:
+ depth: 100
+ - get: docker-geode-build-image
+ params:
+ rootfs: true
+ # Unmerged pull request SHA, for writing status into GitHub
+ - get: geode-unmerged-request
+ resource: geode
+ version: every
+ params:
+ fetch_merge: false
+ - aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ context: $BUILD_JOB_NAME
+ status: pending
+
+ - task: runtests
+ image: docker-geode-build-image
+ tags: (( grab metadata.job.size ))
+ privileged: true
+ timeout: (( grab metadata.job.timeout ))
+ config:
+ inputs:
+ - name: geode
+ - name: docker-geode-build-image
+ 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: (( grab metadata.job.dunit.parallel ))
+ DUNIT_PARALLEL_FORKS: (( grab metadata.job.dunit.forks ))
+ CALL_STACK_TIMEOUT: (( grab metadata.job.call_stack_timeout ))
+ run:
+ args:
+ - (( grab metadata.job.gradle_task ))
+ - (( grab metadata.job.artifact_slug ))
+ path: geode/ci/scripts/test-run.sh
+ on_failure:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ status: failure
+ context: $BUILD_JOB_NAME
+ - put: send-notification-email
+ params:
+ subject: built-geode/subject
+ body: built-geode/body
+ on_success:
+ aggregate:
+ - put: geode
+ params:
+ path: geode-unmerged-request
+ context: $BUILD_JOB_NAME
+ status: success
+
+ ensure:
+ aggregate:
+ - task: archive-results
+ image: docker-geode-build-image
+ config:
+ inputs:
+ - name: geode
+ - name: built-geode
+ platform: linux
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ args:
+ - (( grab metadata.job.gradle_task ))
+ - (( grab metadata.job.artifact_slug ))
+ path: geode/ci/scripts/test-archive.sh
diff --git a/ci/scripts/build.sh b/ci/scripts/build.sh
index 3f55fe9..cf03e95 100755
--- a/ci/scripts/build.sh
+++ b/ci/scripts/build.sh
@@ -28,8 +28,12 @@
GEODE_BUILD_VERSION_FILE=${ROOT_DIR}/geode-build-version/number
GEODE_RESULTS_VERSION_FILE=${ROOT_DIR}/results/number
GEODE_BUILD_VERSION_NUMBER=$(grep "versionNumber *=" geode/gradle.properties |
awk -F "=" '{print $2}' | tr -d ' ')
GEODE_BUILD_DIR=/tmp/geode-build
+GEODE_PULL_REQUEST_ID_FILE=${ROOT_DIR}/geode/.git/id
+if [ -e "${GEODE_PULL_REQUEST_ID_FILE}" ]; then
+ GEODE_PULL_REQUEST_ID=$(cat ${GEODE_PULL_REQUEST_ID_FILE})
+fi
-if [ ! -e "${GEODE_BUILD_VERSION_FILE}" ]; then
+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
fi
@@ -52,17 +56,22 @@ if [ -z ${GEODE_BUILD_VERSION_NUMBER+x} ]; then
exit 1
fi
-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}
+if [ -z "${GEODE_PULL_REQUEST_ID}" ]; then
+ 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 "Build ID is ${BUILD_ID}"
+else
+ FULL_PRODUCT_VERSION="geode-pr-${GEODE_PULL_REQUEST_ID}"
+fi
+
echo -n "${FULL_PRODUCT_VERSION}" > ${GEODE_RESULTS_VERSION_FILE}
-echo "Concourse VERSION is ${CONCOURSE_VERSION}"
-echo "Geode product VERSION is ${GEODE_PRODUCT_VERSION}"
-echo "Build ID is ${BUILD_ID}"
printf "\nUsing the following JDK:"
java -version
@@ -81,7 +90,7 @@ ln -s ${ROOT_DIR}/geode ${GEODE_BUILD_DIR}
pushd ${GEODE_BUILD_DIR}
set +e
-./gradlew --no-daemon -PbuildId=${BUILD_ID} --system-prop
"java.io.tmpdir=${TMPDIR}" build
+./gradlew --no-daemon --parallel -PbuildId=${BUILD_ID} --system-prop
"java.io.tmpdir=${TMPDIR}" build
GRADLE_EXIT_STATUS=$?
set -e
diff --git a/ci/scripts/test-archive.sh b/ci/scripts/test-archive.sh
index 6cdd2eb..fcdd718 100755
--- a/ci/scripts/test-archive.sh
+++ b/ci/scripts/test-archive.sh
@@ -28,10 +28,15 @@ export TMPDIR=${DEST_DIR}/tmp
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_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}" ]; then
+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
fi
@@ -54,16 +59,20 @@ function error_exit() {
trap error_exit ERR
+if [ -z "${GEODE_PULL_REQUEST_ID}" ]; then
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 "Build ID is ${BUILD_ID}"
+ 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 "Build ID is ${BUILD_ID}"
+else
+ FULL_PRODUCT_VERSION="geode-pr-${GEODE_PULL_REQUEST_ID}"
+fi
directories_file=${DEST_DIR}/artifact_directories
diff --git a/ci/scripts/test-run.sh b/ci/scripts/test-run.sh
index ca4e820..887e211 100755
--- a/ci/scripts/test-run.sh
+++ b/ci/scripts/test-run.sh
@@ -28,7 +28,12 @@ export GEODE_BUILD=${DEST_DIR}/test
export GEODE_BUILD_VERSION_NUMBER=$(grep "versionNumber *="
geode/gradle.properties | awk -F "=" '{print $2}' | tr -d ' ')
GEODE_BUILD_VERSION_FILE=${BUILDROOT}/geode-build-version/number
-if [ ! -e "${GEODE_BUILD_VERSION_FILE}" ]; then
+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
+
+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
fi
@@ -56,17 +61,19 @@ function error_exit() {
}
trap error_exit ERR
-
-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 "Product VERSION is ${FULL_PRODUCT_VERSION}"
-echo "Build ID is ${BUILD_ID}"
+if [ -z "${GEODE_PULL_REQUEST_ID}" ]; then
+ 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 "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:"
java -version