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:19:59 UTC
[geode-native] branch test-v142 created (now 96b46de)
This is an automated email from the ASF dual-hosted git repository.
mmartell pushed a change to branch test-v142
in repository https://gitbox.apache.org/repos/asf/geode-native.git.
at 96b46de Save rendered t142 yml
This branch includes the following new commits:
new 111ef8a Add v142 to VS 2019 and build with it
new 96b46de Save rendered t142 yml
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[geode-native] 02/02: Save rendered t142 yml
Posted by mm...@apache.org.
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 ...
[geode-native] 01/02: Add v142 to VS 2019 and build with it
Posted by mm...@apache.org.
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 111ef8a39e37a358bb1a2754ab770aac14d95ce4
Author: Mike Martell <mm...@pivotal.io>
AuthorDate: Fri Oct 15 06:03:20 2021 -0700
Add v142 to VS 2019 and build with it
---
ci/base/base.yml | 3 +-
packer/windows/install-vs-2019-community.ps1 | 79 ++++++++++++++++++++++++++--
2 files changed, 77 insertions(+), 5 deletions(-)
diff --git a/ci/base/base.yml b/ci/base/base.yml
index c336540..a5397d9 100644
--- a/ci/base/base.yml
+++ b/ci/base/base.yml
@@ -72,7 +72,8 @@ builds:
with_dot_net: #@ True
#@yaml/map-key-override
params:
- CMAKE_CONFIGURE_FLAGS: "-A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0"
+ #CMAKE_CONFIGURE_FLAGS: "-A x64 -Tv141,version=14.16,host=x64 -DCMAKE_SYSTEM_VERSION=10.0.16299.0"
+ CMAKE_CONFIGURE_FLAGS: ".."
CMAKE_BUILD_FLAGS: "/m"
CPACK_GENERATORS: "ZIP"
diff --git a/packer/windows/install-vs-2019-community.ps1 b/packer/windows/install-vs-2019-community.ps1
index 460dfd1..193d39a 100644
--- a/packer/windows/install-vs-2019-community.ps1
+++ b/packer/windows/install-vs-2019-community.ps1
@@ -21,22 +21,93 @@ write-host "Installing Visual Studio 2019 Community..."
$args = @('--add Microsoft.VisualStudio.Component.CoreEditor',
'--add Microsoft.VisualStudio.Workload.CoreEditor',
+ '--add Microsoft.NetCore.Component.Runtime.5.0',
+ '--add Microsoft.NetCore.Component.Runtime.3.1',
+ '--add Microsoft.NetCore.Component.SDK',
+ '--add Microsoft.VisualStudio.Component.NuGet',
'--add Microsoft.Net.Component.4.6.1.TargetingPack',
'--add Microsoft.VisualStudio.Component.Roslyn.Compiler',
+ '--add Microsoft.VisualStudio.Component.Roslyn.LanguageServices',
+ '--add Microsoft.VisualStudio.Component.FSharp',
+ '--add Microsoft.ComponentGroup.ClickOnce.Publish',
+ '--add Microsoft.NetCore.Component.DevelopmentTools',
+ '--add Microsoft.VisualStudio.Component.FSharp.WebTemplates',
+ '--add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions',
+ '--add Microsoft.VisualStudio.Component.DockerTools',
+ '--add Microsoft.NetCore.Component.Web',
'--add Microsoft.Net.Component.4.8.SDK',
+ '--add Microsoft.Net.Component.4.7.2.TargetingPack',
+ '--add Microsoft.Net.ComponentGroup.DevelopmentPrerequisites',
+ '--add Microsoft.VisualStudio.Component.TypeScript.4.3',
+ '--add Microsoft.VisualStudio.Component.JavaScript.TypeScript',
+ '--add Microsoft.VisualStudio.Component.JavaScript.Diagnostics',
'--add Microsoft.Component.MSBuild',
'--add Microsoft.VisualStudio.Component.TextTemplating',
+ '--add Component.Microsoft.VisualStudio.RazorExtension',
+ '--add Microsoft.VisualStudio.Component.IISExpress',
+ '--add Microsoft.VisualStudio.Component.SQL.ADAL',
+ '--add Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime',
+ '--add Microsoft.VisualStudio.Component.Common.Azure.Tools',
+ '--add Microsoft.VisualStudio.Component.SQL.CLR',
+ '--add Microsoft.VisualStudio.Component.MSODBC.SQL',
+ '--add Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils',
+ '--add Microsoft.VisualStudio.Component.ManagedDesktop.Core',
'--add Microsoft.Net.Component.4.5.2.TargetingPack',
+ '--add Microsoft.Net.Component.4.5.TargetingPack',
+ '--add Microsoft.VisualStudio.Component.SQL.SSDT',
+ '--add Microsoft.VisualStudio.Component.SQL.DataSources',
+ '--add Component.Microsoft.Web.LibraryManager',
+ '--add Component.Microsoft.WebTools.BrowserLink.WebLivePreview',
+ '--add Microsoft.VisualStudio.ComponentGroup.Web',
+ '--add Microsoft.VisualStudio.Component.Web',
+ '--add Microsoft.VisualStudio.ComponentGroup.Web.Client',
+ '--add Microsoft.Net.Component.4.TargetingPack',
+ '--add Microsoft.Net.Component.4.5.1.TargetingPack',
+ '--add Microsoft.Net.Component.4.6.TargetingPack',
+ '--add Microsoft.Net.ComponentGroup.TargetingPacks.Common',
+ '--add Component.Microsoft.VisualStudio.Web.AzureFunctions',
+ '--add Microsoft.VisualStudio.ComponentGroup.AzureFunctions',
+ '--add Microsoft.VisualStudio.Component.Azure.Compute.Emulator',
+ '--add Microsoft.VisualStudio.Component.Azure.Storage.Emulator',
+ '--add Microsoft.VisualStudio.Component.Azure.ClientLibs',
+ '--add Microsoft.VisualStudio.Component.Azure.AuthoringTools',
+ '--add Microsoft.VisualStudio.Component.CloudExplorer',
+ '--add Microsoft.VisualStudio.ComponentGroup.Web.CloudTools',
+ '--add Microsoft.VisualStudio.Component.DiagnosticTools',
+ '--add Microsoft.VisualStudio.Component.EntityFramework',
+ '--add Microsoft.VisualStudio.Component.AspNet45',
+ '--add Microsoft.VisualStudio.Component.AppInsights.Tools',
+ '--add Microsoft.VisualStudio.Component.WebDeploy',
+ '--add Microsoft.VisualStudio.Component.Debugger.JustInTime',
+ '--add Component.Microsoft.VisualStudio.LiveShare',
+ '--add Microsoft.VisualStudio.Component.WslDebugging',
'--add Microsoft.VisualStudio.Component.IntelliCode',
+ '--add Microsoft.VisualStudio.Workload.NetWeb',
+ '--add Microsoft.Component.PythonTools',
+ '--add Component.CPython3.x64',
'--add Microsoft.VisualStudio.Component.VC.CoreIde',
+ '--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64',
+ '--add Microsoft.VisualStudio.Component.Graphics.Tools',
+ '--add Microsoft.VisualStudio.Component.VC.DiagnosticTools',
+ '--add Microsoft.VisualStudio.Component.Windows10SDK.19041',
+ '--add Microsoft.VisualStudio.Workload.Python',
+ '--add Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites',
+ '--add Microsoft.ComponentGroup.Blend',
+ '--add Microsoft.VisualStudio.Component.DotNetModelBuilder',
+ '--add Microsoft.VisualStudio.Workload.ManagedDesktop',
'--add Microsoft.VisualStudio.Component.VC.Redist.14.Latest',
'--add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core',
+ '--add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake',
+ '--add Microsoft.VisualStudio.Component.VC.CMake.Project',
'--add Microsoft.VisualStudio.Component.VC.ATL',
- '--add Microsoft.VisualStudio.Component.Windows10SDK.16299',
- '--add Microsoft.VisualStudio.Component.VC.v141.x86.x64',
+ '--add Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest',
+ '--add Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest',
+ '--add Microsoft.VisualStudio.Component.VC.CLI.Support',
+ '--add Microsoft.VisualStudio.Component.VC.ASAN',
+ '--add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset',
+ '--add Microsoft.VisualStudio.Component.VC.Llvm.Clang',
'--add Microsoft.VisualStudio.Workload.NativeDesktop',
- '--add Microsoft.VisualStudio.Component.VC.v141.CLI.Support',
- '--add Microsoft.Net.Component.4.6.1.SDK',
+ '--add Microsoft.VisualStudio.Workload.NetCoreTools',
'--quiet')
choco install visualstudio2019community -confirm --package-parameters "$args"