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/06/14 22:30:00 UTC

[geode-dotnet-core-client] 05/05: Minimal pipeline

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

mmartell pushed a commit to branch GEODE-9356-create-ci
in repository https://gitbox.apache.org/repos/asf/geode-dotnet-core-client.git

commit ee52add8b994566496e938c699bf462efa51d650
Author: Mike Martell <mm...@pivotal.io>
AuthorDate: Mon Jun 14 15:29:35 2021 -0700

    Minimal pipeline
---
 ci/pipeline.yml | 1076 +++----------------------------------------------------
 1 file changed, 51 insertions(+), 1025 deletions(-)

diff --git a/ci/pipeline.yml b/ci/pipeline.yml
index bd73f64..04c3f86 100644
--- a/ci/pipeline.yml
+++ b/ci/pipeline.yml
@@ -1,1036 +1,62 @@
-groups:
-- jobs:
-  - build-windows-net5-debug
-  - check-source
-  name: builds
-- jobs:
-  - update-pipeline
-  name: meta
-- jobs:
-  - update-pipeline
-  - build-windows-net5-debug
-  - check-source
-  name: all
-jobs:
-- name: build-windows-net5-debug
-  plan:
-  - in_parallel:
-      fail_fast: true
-      steps:
-      - get: version
-      - get: source
-        on_success:
-          try:
-            attempts: 5
-            get_params:
-              skip_download: true
-            params:
-              context: build-windows-2019-vs-2019-debug
-              description: null
-              path: source
-              status: pending
-            put: pr-status-pending
-            resource: source
-        trigger: true
-        version: every
-      - get: task-image
-  - config:
-      inputs:
-      - name: source
-      platform: linux
-      run:
-        args:
-        - -c
-        - |-
-          # Cribbed shamelessly from geode/ci/scripts/shared_utilities.sh
-          is_source_from_pr_testable() {
-            if [[ $# -ne 3 ]]; then
-              >&2 echo "Invalid args. Try ${0} \"<repo_path>\" \"<list of exclusion dirs>\""
-              exit 1
-            fi
-            local repo_dir="${1}"
-            if [[ ! -d "${repo_dir}" ]]; then
-              # If the repo_dir does not exist, assume call from non-PR
-              return 0;
-            fi
-
-            pushd "${repo_dir}" 2>&1 >> /dev/null
-              local base_dir=$(git rev-parse --show-toplevel)
-              local github_pr_dir="${base_dir}/.git/resource"
-              pushd ${base_dir} 2>&1 >> /dev/null
-                local return_code=0
-                if [ -d "${github_pr_dir}" ]; then
-                  # Modify this path list with directories to exclude
-                  local exclude_dirs="${2}"
-                  for d in $(echo ${exclude_dirs}); do
-                    local exclude_pathspec="${exclude_pathspec} :(exclude,glob)${d}/**"
-                  done
-                  local exclude_files="${3}"
-                  for f in "${exclude_files}"; do
-                    local exclude_pathspec="${exclude_pathspec} :(exclude,glob)${f}"
-                  done
-                  pushd ${base_dir} &> /dev/null
-                    local files=$(git diff --name-only $(cat "${github_pr_dir}/base_sha") $(cat "${github_pr_dir}/head_sha") -- . $(echo ${exclude_pathspec}))
-                  popd &> /dev/null
-                  if [[ -z "${files}" ]]; then
-                    >&2 echo "Code changes are from CI only"
-                    return_code=1
-                  else
-                    >&2 echo "real code change here!"
-                  fi
-                else
-                  >&2 echo "repo is not from a PR"
-                fi
-              popd 2>&1 >> /dev/null
-            popd 2>&1 >> /dev/null
-            return ${return_code}
-          }
-
-          exclude_dirs="ci packer docker tools"
-          exclude_files="*/*.md"
-          is_source_from_pr_testable "source" "${exclude_dirs}" "${exclude_files}" && exit 0 || exit 1
-        path: bash
-    image: task-image
-    on_failure:
-      do:
-      - try:
-          attempts: 5
-          get_params:
-            skip_download: true
-          params:
-            context: build-windows-2019-vs-2019-debug
-            description: Non-code changes are not compiled.
-            path: source
-            status: success
-          put: pr-status-success
-          resource: source
-    task: is-source-change
-  - 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/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: netcore-integration-tests
-      timeout: 1h
-    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_abort:
-      in_parallel:
-        steps:
-        - try:
-            attempts: 5
-            get_params:
-              skip_download: true
-            params:
-              context: build-windows-2019-vs-2019-debug
-              description: Build canceled
-              path: source
-              status: error
-            put: pr-status-error
-            resource: source
-    on_error:
-      in_parallel:
-        steps:
-        - try:
-            attempts: 5
-            get_params:
-              skip_download: true
-            params:
-              context: build-windows-2019-vs-2019-debug
-              description: null
-              path: source
-              status: error
-            put: pr-status-error
-            resource: source
-    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
-        - try:
-            attempts: 5
-            get_params:
-              skip_download: true
-            params:
-              context: build-windows-2019-vs-2019-debug
-              description: null
-              path: source
-              status: failure
-            put: pr-status-failure
-            resource: source
-    on_success:
-      in_parallel:
-        steps:
-        - try:
-            attempts: 5
-            get_params:
-              skip_download: true
-            params:
-              context: build-windows-2019-vs-2019-debug
-              description: null
-              path: source
-              status: success
-            put: pr-status-success
-            resource: source
-  public: true
-- name: check-source
-  plan:
-  - in_parallel:
-      fail_fast: true
-      steps:
-      - get: version
-      - get: source
-        on_success:
-          in_parallel:
-            steps:
-        trigger: true
-        version: every
-      - do:
-        - get: task-image
-        - get: geode-latest
-        - config:
-            caches:
-            - path: geode
-            inputs:
-            - name: geode-latest
-            outputs:
-            - name: geode
-            platform: linux
-            run:
-              args:
-              - -c
-              - |-
-                set -ueo pipefail
-                if (cmp -s geode-latest/version geode/version); then
-                 exit 0
-                fi
-                geode_version=$(cat geode-latest/version)
-                geode_name="apache-geode-${geode_version}"
-                geode_artifact="${geode_name}.tgz"
-                tar xvf geode-latest/${geode_artifact} --directory=geode --strip-components=1
-                cp geode-latest/version geode/version
-              path: bash
-          image: task-image
-          task: extract-geode
-  - in_parallel:
-      steps:
-      - config:
-          inputs:
-          - name: source
-          - name: geode
-          outputs:
-          - name: build
-          platform: linux
-          run:
-            args:
-            - -c
-            - |-
-              set -ueo pipefail
-              export GEODE_HOME=$(pwd)/geode
-              log=$(mktemp)
-              cd build
-              cmake ../source -DCMAKE_EXPORT_COMPILE_COMMANDS=ON >>${log} 2>&1 || (cat ${log}; exit 1)
-              cmake --build dependencies --parallel $(nproc) >>${log} 2>&1 || (cat ${log}; exit 1)
-              run-clang-tidy -j $(nproc) -quiet
-            path: bash
-        image: clang-tools-image
-        on_abort:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-tidy
-                  description: Build canceled
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_error:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-tidy
-                  description: null
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_failure:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-tidy
-                  description: null
-                  path: source
-                  status: failure
-                put: pr-status-failure
-                resource: source
-        on_success:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-tidy
-                  description: null
-                  path: source
-                  status: success
-                put: pr-status-success
-                resource: source
-        task: clang-tidy
-      - config:
-          inputs:
-          - name: source
-          - name: geode
-          outputs:
-          - name: build
-          platform: linux
-          run:
-            args:
-            - -c
-            - |-
-              set -ueo pipefail
-              export GEODE_HOME=$(pwd)/geode
-              log=$(mktemp)
-              cd build
-              cmake ../source -DCMAKE_EXPORT_COMPILE_COMMANDS=ON >>${log} 2>&1 || (cat ${log}; exit 1)
-              jq -r '.[].file' compile_commands.json | sort | uniq | grep -v $(pwd) | xargs clang-format --dry-run -Werror
-            path: bash
-        image: clang-tools-image
-        on_abort:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-format
-                  description: Build canceled
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_error:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-format
-                  description: null
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_failure:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-format
-                  description: null
-                  path: source
-                  status: failure
-                put: pr-status-failure
-                resource: source
-        on_success:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: clang-format
-                  description: null
-                  path: source
-                  status: success
-                put: pr-status-success
-                resource: source
-        task: clang-format
-      - config:
-          inputs:
-          - name: source
-          - name: geode
-          outputs:
-          - name: build
-          platform: linux
-          run:
-            args:
-            - -c
-            - |-
-              set -ueo pipefail
-              export GEODE_HOME=$(pwd)/geode
-              log=$(mktemp)
-              cd build
-              cmake ../source -DUSE_RAT=ON >>${log} 2>&1 || (cat ${log}; exit 1)
-              cmake --build . --target rat-check
-            path: bash
-        image: clang-tools-image
-        on_abort:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: rat-check
-                  description: Build canceled
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_error:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: rat-check
-                  description: null
-                  path: source
-                  status: error
-                put: pr-status-error
-                resource: source
-        on_failure:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: rat-check
-                  description: null
-                  path: source
-                  status: failure
-                put: pr-status-failure
-                resource: source
-        on_success:
-          in_parallel:
-            steps:
-            - try:
-                attempts: 5
-                get_params:
-                  skip_download: true
-                params:
-                  context: rat-check
-                  description: null
-                  path: source
-                  status: success
-                put: pr-status-success
-                resource: source
-        task: rat-check
-  public: true
-- name: update-pipeline
-  plan:
-  - in_parallel:
-      fail_fast: true
-      steps:
-      - get: ytt-image
-      - get: ci-source
-        trigger: true
-  - config:
-      inputs:
-      - name: ci-source
-        path: source
-      outputs:
-      - name: pipeline
-      platform: linux
-      run:
-        args:
-        - --file
-        - source/ci/lib
-        - --file
-        - source/ci/base
-        - --file
-        - source/ci/pr
-        - --data-value
-        - pipeline.name=geode-native-develop
-        - --data-value
-        - pipeline.variant=pr
-        - --data-value
-        - github.owner=apache
-        - --data-value
-        - github.repository=geode-native
-        - --data-value
-        - repository.branch=develop
-        - --data-value
-        - google.project=apachegeode-ci
-        - --data-value
-        - google.zone=us-central1-a
-        - --data-value
-        - google.storage.bucket=apachegeode-ci-concourse
-        - --data-value
-        - google.storage.key=geode-native/geode-native-develop
-        - --output-files
-        - pipeline/
-        path: /usr/bin/ytt
-    image: ytt-image
-    task: ytt
-  - file: pipeline/pipeline.yml
-    set_pipeline: self
-  public: true
-  serial: true
+---
 resource_types:
-- name: apache-directory-index-resource
-  source:
-    repository: jakepivotal/apache-directory-index-resource
-  type: docker-image
-- name: gci-resource
-  source:
-    repository: smgoller/gci-resource
-  type: docker-image
 - name: gcs-resource
+  type: registry-image
   source:
     repository: frodenas/gcs-resource
-  type: docker-image
-- name: github-pr-resource
-  source:
-    repository: teliaoss/github-pr-resource
-  type: docker-image
-- name: maven-resource
-  source:
-    repository: jakepivotal/maven-resource
-  type: docker-image
+
 resources:
-- icon: github
-  name: ci-source
-  source:
-    branch: develop
-    depth: 1
-    ignore_paths: []
-    paths:
-    - ci/*
-    uri: https://github.com/apache/geode-dotnet-core-client.git
+- name: netcore-source
   type: git
-- icon: docker
-  name: gcloud-image
   source:
-    password: ((concourse-gcp-key))
-    registry_mirror:
-      host: null
-    repository: gcr.io/google.com/cloudsdktool/cloud-sdk
-    tag: alpine
-    username: _json_key
+    uri: https://github.com/apache/geode-dotnet-core-client
+    branch: develop
+- name: aspnetcore-image
   type: registry-image
-- icon: archive
-  name: geode-latest
-  source:
-    artifact: org.apache.geode:apache-geode:tgz
-    url: https://maven.apachegeode-ci.info/snapshots
-    version: 1\.15\.0-build\..*
-  type: maven-resource
-- icon: archive
-  name: geode-native-latest
-  source:
-    artifact: org.apache.geode:apache-geode-native:tgz
-    url: https://apachegeode-ci-concourse/geode-native/geode-native-develop/packages/windows-2019-vs-2019/debug/apache-geode-native-1.14.0-build.1-Windows-64bit.zip
-    version: 1\.14\.1-build\..*
-  type: gcs-resource
-- check_every: 1m
-  icon: github
-  name: source
-  source:
-    access_token: ((github-pr-access-token))
-    base_branch: develop
-    repository: apache/geode-dotnet-core-client
-  type: github-pr-resource
-- icon: docker
-  name: task-image
-  source:
-    password: ((concourse-gcp-key))
-    repository: gcr.io/apachegeode-ci/geode-native-task
-    tag: latest
-    username: _json_key
-  type: docker-image
-- icon: numeric-1-box-multiple
-  name: version
+  icon: docker
+  source:
+    repository: mcr.microsoft.com/dotnet/sdk
+    tag: "5.0"
+#- name: package-windows-2019-vs-2019-debug-archive
+#  icon: content-save
+#  source:
+#    bucket: apachegeode-ci-concourse
+#    json_key: ((concourse-gcp-key))
+#    regexp: geode-native/geode-native-develop/packages/windows-2019-vs-2019/debug/apache-geode-native-(?P<version>.*)-Windows-64bit.zip
+#  type: gcs-resource
+- name: package-ubuntu-20.0.4-debug-archive
+  icon: content-save
   source:
     bucket: apachegeode-ci-concourse
-    driver: gcs
-    initial_version: 1.15.0-build.0
     json_key: ((concourse-gcp-key))
-    key: geode-native/geode-native-develop/version
-  type: semver
-- icon: docker
-  name: ytt-image
-  source:
-    password: null
-    registry_mirror:
-      host: mirror.gcr.io
-    repository: gerritk/ytt
-    tag: latest
-    username: null
-  type: registry-image
+    regexp: geode-native/geode-native-develop/packages/ubuntu-20.04/debug/apache-geode-native-(?P<version>.*)-Linux-64bit.tar.gz
+  type: gcs-resource
+
+jobs:
+- name: aspnetcore-unit-tests
+  plan:
+  - in_parallel:
+    - get: netcore-source
+      trigger: true
+    - get: aspnetcore-image
+    - get: package-ubuntu-20.0.4-debug-archive
+  - task: run-tests
+    privileged: true
+    image: aspnetcore-image
+    config:
+      platform: linux
+      inputs:
+      - name: netcore-source
+      - name: package-ubuntu-20.0.4-debug-archive
+      run:
+          path: sh
+          args:
+          - -exc
+          - |
+              cd package-ubuntu-20.0.4-debug-archive
+              tar xvf apache-geode-native-1.15.0-build.46-Linux-64bit.tar.gz
+              # geode-native install now in apache-geode-native
+              cd ..
+              cd ./netcore-source
+              dotnet restore
+              dotnet test