You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by mm...@apache.org on 2021/10/18 14:20:01 UTC
[geode-native] 02/02: Save rendered t142 yml
This is an automated email from the ASF dual-hosted git repository.
mmartell pushed a commit to branch test-v142
in repository https://gitbox.apache.org/repos/asf/geode-native.git
commit 96b46de8e91cdeac1c5eb2476207135c56c6c7b3
Author: Mike Martell <mm...@pivotal.io>
AuthorDate: Mon Oct 18 07:19:20 2021 -0700
Save rendered t142 yml
---
ci/geode-native-t142.yml | 12247 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 12247 insertions(+)
diff --git a/ci/geode-native-t142.yml b/ci/geode-native-t142.yml
new file mode 100644
index 0000000..8982459
--- /dev/null
+++ b/ci/geode-native-t142.yml
@@ -0,0 +1,12247 @@
+groups:
+- jobs:
+ - build-windows-2016-vs-2017-debug
+ - build-windows-2016-vs-2017-release
+ - build-windows-2019-vs-2019-debug
+ - build-windows-2019-vs-2019-release
+ - build-rhel-7-debug
+ - build-rhel-7-release
+ - build-rhel-8-debug
+ - build-rhel-8-release
+ - build-ubuntu-16.04-debug
+ - build-ubuntu-16.04-release
+ - build-ubuntu-18.04-debug
+ - build-ubuntu-18.04-release
+ - build-ubuntu-20.04-debug
+ - build-ubuntu-20.04-release
+ - check-source
+ name: builds
+- jobs:
+ - update-pipeline
+ name: meta
+- jobs:
+ - update-pipeline
+ - build-windows-2016-vs-2017-debug
+ - build-windows-2016-vs-2017-release
+ - build-windows-2019-vs-2019-debug
+ - build-windows-2019-vs-2019-release
+ - build-rhel-7-debug
+ - build-rhel-7-release
+ - build-rhel-8-debug
+ - build-rhel-8-release
+ - build-ubuntu-16.04-debug
+ - build-ubuntu-16.04-release
+ - build-ubuntu-18.04-debug
+ - build-ubuntu-18.04-release
+ - build-ubuntu-20.04-debug
+ - build-ubuntu-20.04-release
+ - check-source
+ - packer-build-windows-2016-vs-2017
+ - packer-build-windows-2019-vs-2019
+ - packer-build-rhel-7
+ - packer-build-rhel-8
+ - packer-build-ubuntu-16-04
+ - packer-build-ubuntu-18-04
+ - packer-build-ubuntu-20-04
+ - docker-task-image
+ - docker-clang-tools-image
+ - version-source
+ - bump-minor-version
+ - github-pre-release
+ - native-passed
+ name: all
+- jobs:
+ - packer-build-windows-2016-vs-2017
+ - packer-build-windows-2019-vs-2019
+ - packer-build-rhel-7
+ - packer-build-rhel-8
+ - packer-build-ubuntu-16-04
+ - packer-build-ubuntu-18-04
+ - packer-build-ubuntu-20-04
+ - docker-task-image
+ - docker-clang-tools-image
+ name: images
+- jobs:
+ - version-source
+ - bump-minor-version
+ name: version
+jobs:
+- name: build-windows-2016-vs-2017-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-windows-2016-vs-2017-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-windows-2016-vs-2017-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unmanaged-unit-tests
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test2 ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test2 ctest -C ${CMAKE_CONFIG} -j6 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Windows-64bit.zip
+ put: package-windows-2016-vs-2017-debug-archive
+ - params:
+ file: package/*-Windows-64bit.zip.sha512
+ put: package-windows-2016-vs-2017-debug-archive.sha512
+ public: true
+- name: build-windows-2016-vs-2017-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-windows-2016-vs-2017-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-windows-2016-vs-2017-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unmanaged-unit-tests
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test2 ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test2 ctest -C ${CMAKE_CONFIG} -j6 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Windows-64bit.zip
+ put: package-windows-2016-vs-2017-release-archive
+ - params:
+ file: package/*-Windows-64bit.zip.sha512
+ put: package-windows-2016-vs-2017-release-archive.sha512
+ public: true
+- name: build-windows-2019-vs-2019-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-windows-2019-vs-2019-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-windows-2019-vs-2019-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unmanaged-unit-tests
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test2 ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test2 ctest -C ${CMAKE_CONFIG} -j6 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Windows-64bit.zip
+ put: package-windows-2019-vs-2019-debug-archive
+ - params:
+ file: package/*-Windows-64bit.zip.sha512
+ put: package-windows-2019-vs-2019-debug-archive.sha512
+ public: true
+- name: build-windows-2019-vs-2019-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-windows-2019-vs-2019-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-windows-2019-vs-2019-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unmanaged-unit-tests
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/test2 ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test2 ctest -C ${CMAKE_CONFIG} -j6 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/clicache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: net-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: /m
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0
+ CPACK_GENERATORS: ZIP
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Windows-64bit.zip
+ put: package-windows-2019-vs-2019-release-archive
+ - params:
+ file: package/*-Windows-64bit.zip.sha512
+ put: package-windows-2019-vs-2019-release-archive.sha512
+ public: true
+- name: build-rhel-7-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-rhel-7-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-rhel-7-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-rhel-7-debug-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-rhel-7-debug-archive.sha512
+ public: true
+- name: build-rhel-7-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-rhel-7-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-rhel-7-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-rhel-7-release-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-rhel-7-release-archive.sha512
+ public: true
+- name: build-rhel-8-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-rhel-8-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-rhel-8-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-rhel-8-debug-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-rhel-8-debug-archive.sha512
+ public: true
+- name: build-rhel-8-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-rhel-8-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-rhel-8-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: -DUSE_IPO=NO
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-rhel-8-release-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-rhel-8-release-archive.sha512
+ public: true
+- name: build-ubuntu-16.04-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-ubuntu-16-04-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-ubuntu-16-04-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-ubuntu-16.04-debug-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-ubuntu-16.04-debug-archive.sha512
+ public: true
+- name: build-ubuntu-16.04-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-ubuntu-16-04-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-ubuntu-16-04-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-ubuntu-16.04-release-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-ubuntu-16.04-release-archive.sha512
+ public: true
+- name: build-ubuntu-18.04-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-ubuntu-18-04-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-ubuntu-18-04-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=Debug --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-ubuntu-18.04-debug-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-ubuntu-18.04-debug-archive.sha512
+ public: true
+- name: build-ubuntu-18.04-release
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-ubuntu-18-04-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-ubuntu-18-04-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=release \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/test ctest -C ${CMAKE_CONFIG} -j8 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-unit-tests
+ timeout: 30m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration/test ctest -C ${CMAKE_CONFIG} -j4 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-integration-tests
+ timeout: 1h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/cppcache/integration-test ctest -C ${CMAKE_CONFIG} -j4 --timeout=500 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: cpp-legacy-integration-tests
+ timeout: 2h
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=RelWithDebInfo --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-integration-test
+ timeout: 10m
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: RelWithDebInfo
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_shell cmake -E chdir build/netcore/netcore-session-integration-test ctest -C ${CMAKE_CONFIG} -j1 --timeout=300 --output-on-failure --repeat until-pass:4 --schedule-random
+ path: bash
+ image: task-image
+ task: netcore-session-integration-test
+ timeout: 10m
+ ensure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ instance_name=$(source ${instance_file} && echo -n ${name})
+
+ gcloud compute instances delete ${instance_name} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --delete-disks=all \
+ --quiet
+ path: bash
+ image: gcloud-image
+ task: instance-delete
+ on_failure:
+ in_parallel:
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ outputs:
+ - name: build
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_download_directory build .
+ path: bash
+ image: task-image
+ task: download-build
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - params:
+ file: package/*-Linux-64bit.tar.gz
+ put: package-ubuntu-18.04-release-archive
+ - params:
+ file: package/*-Linux-64bit.tar.gz.sha512
+ put: package-ubuntu-18.04-release-archive.sha512
+ public: true
+- name: build-ubuntu-20.04-debug
+ plan:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: version
+ passed:
+ - version-source
+ trigger: true
+ - get: source
+ passed:
+ - version-source
+ trigger: true
+ - get: task-image
+ - do:
+ - do:
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - get: gcloud-image
+ - get: geode-native-develop-build-ubuntu-20-04-gci
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: geode-native-develop-build-ubuntu-20-04-gci
+ path: image
+ outputs:
+ - name: instance
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ GOOGLE_PROJECT=apachegeode-ci
+ GOOGLE_ZONE=us-central1-a
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+ ssh_key_file=${INSTANCE_DIR}/identity
+ ssh_pubkey_file=${ssh_key_file}.pub
+ ssh-keygen -m pem -t rsa -f ${ssh_key_file} -C "${INSTANCE_USER}" -N '' <<< y
+ ssh_pubkey=$(cat ${ssh_pubkey_file})
+ ssh_keys_file=${INSTANCE_DIR}/ssh_keys_file
+ echo "${INSTANCE_USER}:${ssh_pubkey}" > ${ssh_keys_file}
+ instance_name=build-$(cat /proc/sys/kernel/random/uuid)
+ image_name=$(cat image/name)
+ time_to_live=$(( $(date +%s) + ( 4 * 60 * 60 ) ))
+ instance_file=${INSTANCE_DIR}/instance.sh
+ gcloud compute instances create ${instance_name} \
+ --format='config[export](name,networkInterfaces[0].accessConfigs[0].natIP)' \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --subnet=default \
+ --machine-type=e2-standard-16 \
+ --boot-disk-size=200GB \
+ --boot-disk-type=pd-standard \
+ --boot-disk-device-name=${instance_name} \
+ --image-project=${GOOGLE_PROJECT} \
+ --image=${image_name} \
+ --metadata-from-file ssh-keys=${ssh_keys_file} \
+ --labels=time-to-live=${time_to_live},pipeline-name=geode-native-develop,build-config=debug \
+ > ${instance_file}
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ SSH_OPTIONS="${SSH_OPTIONS} -o ConnectTimeout=10"
+ echo "Waiting for ssh on ${instance_name} to be ready."
+ console_file=$(mktemp)
+ console_next=0
+ while ! remote_shell echo ready 2>/dev/null ; do
+ gcloud compute instances get-serial-port-output ${instance_name} \
+ --start ${console_next} \
+ --project=${GOOGLE_PROJECT} \
+ --zone=${GOOGLE_ZONE} \
+ --format='value[separator="
+ "](next,contents)' \
+ > ${console_file}
+ tmp_next=$(head -n 1 ${console_file})
+ if (( tmp_next != console_next )); then
+ console_next=${tmp_next}
+ sed '1d;s/\x1b\[[0-9;]*[JH]//g' ${console_file}
+ fi
+ done
+ path: bash
+ image: gcloud-image
+ task: instance-create
+ - get: geode-latest
+ - in_parallel:
+ fail_fast: true
+ steps:
+ - config:
+ inputs:
+ - name: instance
+ - name: source
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ remote_upload source .
+ path: bash
+ image: task-image
+ task: upload-source
+ - config:
+ inputs:
+ - name: instance
+ - name: geode-latest
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ geode_version=$(cat geode-latest/version)
+ geode_name="apache-geode-${geode_version}"
+ geode_artifact="${geode_name}.tgz"
+ remote_upload geode-latest/${geode_artifact} .
+ remote_shell cmake -E tar xvf ${geode_artifact}
+ remote_shell cmake -E rename ${geode_name} geode
+ path: bash
+ image: task-image
+ task: upload-geode
+ - config:
+ inputs:
+ - name: instance
+ - name: version
+ - name: source
+ outputs:
+ - name: package
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
+ echo "${instance_file} not readable."
+ exit 1
+ fi
+
+ external_ip=$(source ${instance_file} && echo -n ${networkInterfaces_accessConfigs_natIP})
+
+ function remote_shell {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} "$@"
+ }
+
+ function remote_download {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "${INSTANCE_USER}@${external_ip}:${1}" "$2"
+ }
+
+ function remote_download_directory {
+ ssh ${SSH_OPTIONS} -i ${ssh_key_file} ${INSTANCE_USER}@${external_ip} tar -C $(dirname ${1}) -czf - $(basename ${1}) | tar -C ${2} -zxf -
+ }
+
+ function remote_upload {
+ scp ${SSH_OPTIONS} -i ${ssh_key_file} -q -r "$1" "${INSTANCE_USER}@${external_ip}:${2}"
+ }
+ pushd source
+ git_url=$(git remote get-url origin)
+ git_rev=$(git rev-parse HEAD)
+ popd
+ version=$(cat version/number)
+ builddate=$(date "+%Y-%m-%d")
+ remote_shell cmake -E make_directory build
+ remote_shell cmake -E time cmake -E chdir build cmake ../source ${CMAKE_CONFIGURE_FLAGS} \
+ -DCMAKE_BUILD_TYPE=${CMAKE_CONFIG} \
+ -DGEODE_ROOT=../geode \
+ -DPRODUCT_VERSION=${version} \
+ -DPRODUCT_BUILDDATE=${builddate} \
+ -DPRODUCT_SOURCE_REVISION=${git_rev} \
+ -DPRODUCT_SOURCE_REPOSITORY=${git_url}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake --build build --config ${CMAKE_CONFIG} --target docs -- ${CMAKE_BUILD_FLAGS}
+ remote_shell cmake -E time cmake -E chdir build cpack -C ${CMAKE_CONFIG} -G "${CPACK_GENERATORS}" | tee cpack.out
+ packages=$(awk '/^CPack: - package: / {print $4}' cpack.out)
+ for package in ${packages}; do
+ remote_download ${package} package/
+ done
+ checksums=$(awk '/^CPack: - checksum file: / {print $5}' cpack.out)
+ for checksum in ${checksums}; do
+ remote_download ${checksum} package/
+ done
+ path: bash
+ image: task-image
+ task: build
+ - config:
+ inputs:
+ - name: instance
+ params:
+ CMAKE_BUILD_FLAGS: -j16
+ CMAKE_CONFIG: Debug
+ CMAKE_CONFIGURE_FLAGS: ""
+ CPACK_GENERATORS: TGZ
+ platform: linux
+ run:
+ args:
+ - -c
+ - |-
+ set -ueo pipefail
+ INSTANCE_USER=build
+ INSTANCE_DIR=$(pwd)/instance
+
+ if [ ! -d "${INSTANCE_DIR}" ]; then
+ echo "${INSTANCE_DIR} not found."
+ exit 1
+ fi
+
+ SSH_OPTIONS=${SSH_OPTIONS:-"-o StrictHostKeyChecking=no -o PasswordAuthentication=no"}
+
+ ssh_key_file=${INSTANCE_DIR}/identity
+ if [ ! -r "${ssh_key_file}" ]; then
+ echo "${ssh_key_file} not readable."
+ exit 1
+ fi
+
+ instance_file=${INSTANCE_DIR}/instance.sh
+ if [ ! -r "${instance_file}" ]; then
... 2262 lines suppressed ...