You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by pi...@apache.org on 2018/04/25 16:34:42 UTC
[geode] branch develop updated: introducing spruce and deploy
script for branch-agnostic pipeline (#1854)
This is an automated email from the ASF dual-hosted git repository.
pivotalsarge pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new e3e0e7c introducing spruce and deploy script for branch-agnostic pipeline (#1854)
e3e0e7c is described below
commit e3e0e7cb23030569ad2b29e2b46c3497935b12d2
Author: Sean Goller <se...@goller.net>
AuthorDate: Wed Apr 25 09:34:38 2018 -0700
introducing spruce and deploy script for branch-agnostic pipeline (#1854)
[#157005563] [GEODE-5130]
meta can create pipelines for geode branches
fix behavior of PARALLEL_DUNIT=false in script
fix seeding of semver for new branches
---
ci/pipelines/deploy_meta.sh | 22 +
ci/pipelines/develop.yml | 521 ---------------------
ci/pipelines/geode-build/base.yml | 195 ++++++++
ci/pipelines/geode-build/deploy_pipeline.sh | 84 ++++
ci/pipelines/geode-build/test-stubs/acceptance.yml | 27 ++
.../geode-build/test-stubs/distributed.yml | 27 ++
ci/pipelines/geode-build/test-stubs/flaky.yml | 27 ++
.../geode-build/test-stubs/integration.yml | 27 ++
ci/pipelines/geode-build/test-stubs/ui.yml | 27 ++
ci/pipelines/geode-build/test-template.yml | 84 ++++
ci/pipelines/meta.yml | 37 +-
ci/scripts/test-run.sh | 12 +-
12 files changed, 554 insertions(+), 536 deletions(-)
diff --git a/ci/pipelines/deploy_meta.sh b/ci/pipelines/deploy_meta.sh
new file mode 100755
index 0000000..11126f8
--- /dev/null
+++ b/ci/pipelines/deploy_meta.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+GEODE_BRANCH=$(git rev-parse --abbrev-ref HEAD)
+TARGET=geode
+
+set -x
+fly -t ${TARGET} set-pipeline -p meta-${GEODE_BRANCH} -c meta.yml --var geode-build-branch=${GEODE_BRANCH}
diff --git a/ci/pipelines/develop.yml b/ci/pipelines/develop.yml
deleted file mode 100644
index 78761c1..0000000
--- a/ci/pipelines/develop.yml
+++ /dev/null
@@ -1,521 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
----
-image_resource: &docker-geode-build-image
- type: docker-image
- source:
- username: ((!docker-username))
- password: ((!docker-password))
- repository: gcr.io/apachegeode-ci/((!docker-image-name))
- tag: latest
-
-resource_types:
- - name: gcs-resource
- type: docker-image
- source:
- repository: frodenas/gcs-resource
- - name: email
- type: docker-image
- source:
- repository: pcfseceng/email-resource
-
-resources:
-- name: docker-test-image
- type: docker-image
- source:
- username: ((!docker-username))
- password: ((!docker-password))
- repository: gcr.io/apachegeode-ci/((!docker-image-name))
-- name: geode
- type: git
- source:
- uri: https://github.com/apache/geode.git
- branch: develop
- ignore_paths:
- - ci/*
-- name: geode-ci
- type: git
- source:
- depth: 1
- uri: https://github.com/apache/geode.git
- branch: develop
- paths:
- - ci/*
-- name: geode-examples
- type: git
- source:
- uri: https://github.com/apache/geode-examples.git
- branch: develop
- depth: 10
-- name: geode-build-version
- type: semver
- source:
- driver: gcs
- bucket: ((!concourse-bucket))
- key: ((!version-key))
- json_key: ((!concourse-gcp-key))
- initial_version: 1.3.0
-- name: geode-build-artifact
- type: gcs-resource
- source:
- bucket: ((!public-bucket))
- json_key: ((!concourse-gcp-key))
- regexp: artifacts/develop/geodefiles-(.*).tgz
-- name: send-notification-email
- type: email
- source:
- smtp:
- host: ((!source-email-server))
- port: "587"
- username: ((!source-email-username))
- password: ((!source-email-password))
- from: ((!source-email-address))
- to: [ ((!notification-email-address)) ]
-
-groups:
-- name: main
- jobs:
- - Build
- - DistributedTest
- - AcceptanceTest
- - IntegrationTest
- - FlakyTest
- - TestExamples
- - UpdatePassingRef
-- name: UITests
- jobs:
- - Build
- - UITests
-
-jobs:
-- name: Build
- serial: true
- public: true
- plan:
- - get: geode
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- params: {pre: build}
- - task: build
- config:
- platform: linux
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- outputs:
- - name: built-geode
- - name: results
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- path: geode-ci/ci/scripts/build.sh
- on_failure:
- aggregate:
- - put: send-notification-email
- params:
- subject: results/subject
- body: results/body
- ensure:
- aggregate:
- - put: geode-build-artifact
- params:
- file: built-geode/geodefiles-*.tgz
- - put: geode-build-version
- params:
- file: results/number
-- name: DistributedTest
- serial: true
- public: true
- plan:
- - aggregate:
- - get: geode
- passed: [Build]
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- passed: [Build]
- - get: docker-test-image
- params:
- rootfs: true
- - task: runtests
- tags: [large]
- privileged: true
- timeout: 8h
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: docker-test-image
- - name: geode-build-version
- platform: linux
- outputs:
- - name: built-geode
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- PARALLEL_DUNIT: true
- DUNIT_PARALLEL_FORKS: 7
- CALL_STACK_TIMEOUT: 25200
- run:
- args:
- - distributedTest
- - distributedtestfiles
- path: geode-ci/ci/scripts/test-run.sh
- on_failure:
- aggregate:
- - put: send-notification-email
- params:
- subject: built-geode/subject
- body: built-geode/body
- ensure:
- aggregate:
- - task: archive-results
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- - name: built-geode
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- - distributedTest
- - distributedtestfiles
- path: geode-ci/ci/scripts/test-archive.sh
-
-- name: AcceptanceTest
- serial: true
- public: true
- plan:
- - aggregate:
- - get: geode
- passed: [Build]
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- passed: [Build]
- - get: docker-test-image
- params:
- rootfs: true
- - task: runtests
- privileged: true
- timeout: 8h
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: docker-test-image
- - name: geode-build-version
- platform: linux
- outputs:
- - name: built-geode
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- CALL_STACK_TIMEOUT: 25200
- run:
- args:
- - :geode-assembly:acceptanceTest geode-connectors:acceptanceTest
- - acceptancetestfiles
- path: geode-ci/ci/scripts/test-run.sh
- on_failure:
- aggregate:
- - put: send-notification-email
- params:
- subject: built-geode/subject
- body: built-geode/body
- ensure:
- aggregate:
- - task: archive-results
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- - name: built-geode
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- - :geode-assembly:acceptanceTest
- - acceptancetestfiles
- path: geode-ci/ci/scripts/test-archive.sh
-
-- name: IntegrationTest
- serial: true
- public: true
- plan:
- - aggregate:
- - get: geode
- passed: [Build]
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- passed: [Build]
- - get: docker-test-image
- params:
- rootfs: true
- - task: runtests
- privileged: true
- timeout: 8h
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: docker-test-image
- - name: geode-build-version
- platform: linux
- outputs:
- - name: built-geode
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- PARALLEL_DUNIT: true
- DUNIT_PARALLEL_FORKS: 1
- CALL_STACK_TIMEOUT: 25200
- run:
- args:
- - integrationTest
- - integrationtestfiles
- path: geode-ci/ci/scripts/test-run.sh
- on_failure:
- aggregate:
- - put: send-notification-email
- params:
- subject: built-geode/subject
- body: built-geode/body
- ensure:
- aggregate:
- - task: archive-results
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- - name: built-geode
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- - integrationTest
- - integrationtestfiles
- path: geode-ci/ci/scripts/test-archive.sh
-
-- name: FlakyTest
- serial: true
- public: true
- plan:
- - aggregate:
- - get: geode
- passed: [Build]
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- passed: [Build]
- - get: docker-test-image
- params:
- rootfs: true
- - task: runtests
- privileged: true
- timeout: 8h
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: docker-test-image
- - name: geode-build-version
- platform: linux
- outputs:
- - name: built-geode
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- CALL_STACK_TIMEOUT: 25200
- run:
- args:
- - flakyTest
- - flakytestfiles
- path: geode-ci/ci/scripts/test-run.sh
- on_failure:
- aggregate:
- - put: send-notification-email
- params:
- subject: built-geode/subject
- body: built-geode/body
- ensure:
- aggregate:
- - task: archive-results
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- - name: built-geode
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- - flakyTest
- - flakytestfiles
- path: geode-ci/ci/scripts/test-archive.sh
-
-- name: UITests
- serial: true
- public: true
- plan:
- - aggregate:
- - get: geode
- passed: [Build]
- trigger: true
- - get: geode-ci
- - get: geode-build-version
- passed: [Build]
- - get: docker-test-image
- params:
- rootfs: true
- - task: runtests
- privileged: true
- timeout: 2h
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: docker-test-image
- - name: geode-build-version
- platform: linux
- outputs:
- - name: built-geode
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- PARALLEL_DUNIT: true
- DUNIT_PARALLEL_FORKS: 1
- CALL_STACK_TIMEOUT: 25200
- run:
- args:
- - uiTest
- - uitestfiles
- path: geode-ci/ci/scripts/test-run.sh
- ensure:
- aggregate:
- - task: archive-results
- config:
- inputs:
- - name: geode
- - name: geode-ci
- - name: geode-build-version
- - name: built-geode
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- - uiTest
- - uitestfiles
- path: geode-ci/ci/scripts/test-archive.sh
-
-- name: TestExamples
- serial: true
- public: true
- plan:
- - get: geode
- passed: [AcceptanceTest, DistributedTest, IntegrationTest]
- trigger: true
- - aggregate:
- - get: geode-ci
- - get: geode-examples
- trigger: true
- - get: docker-test-image
- params:
- rootfs: true
- - task: testexamples
- privileged: true
- timeout: 7h
- config:
- inputs:
- - name: geode-ci
- - name: geode-examples
- - name: docker-test-image
- platform: linux
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- args:
- path: geode-ci/ci/scripts/build-examples.sh
-
-- name: UpdatePassingRef
- serial: true
- public: true
- plan:
- - get: geode
- passed: [AcceptanceTest, DistributedTest, IntegrationTest]
- trigger: true
- - get: geode-ci
- - task: updatepassingref
- config:
- inputs:
- - name: geode
- - name: geode-ci
- platform: linux
- outputs:
- - name: results
- image_resource: *docker-geode-build-image
- params:
- MAINTENANCE_VERSION: ((!maintenance-version))
- SERVICE_ACCOUNT: ((!concourse-gcp-account))
- PUBLIC_BUCKET: ((!public-bucket))
- run:
- path: geode-ci/ci/scripts/update-passing-ref.sh
diff --git a/ci/pipelines/geode-build/base.yml b/ci/pipelines/geode-build/base.yml
new file mode 100644
index 0000000..b84988f
--- /dev/null
+++ b/ci/pipelines/geode-build/base.yml
@@ -0,0 +1,195 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+
+resource_types:
+ - name: gcs-resource
+ type: docker-image
+ source:
+ repository: frodenas/gcs-resource
+ - name: email
+ type: docker-image
+ source:
+ repository: pcfseceng/email-resource
+
+resources:
+- name: docker-geode-build-image
+ type: docker-image
+ source:
+ username: ((!docker-username))
+ password: ((!docker-password))
+ repository: gcr.io/apachegeode-ci/((!docker-image-name))
+ tag: latest
+- name: geode
+ type: git
+ source:
+ uri: https://github.com/apache/geode.git
+ branch: (( grab metadata.geode-build-branch ))
+ ignore_paths:
+ - ci/*
+- name: geode-ci
+ type: git
+ source:
+ depth: 1
+ uri: https://github.com/apache/geode.git
+ branch: (( grab metadata.geode-build-branch ))
+ paths:
+ - ci/*
+- name: geode-examples
+ type: git
+ source:
+ uri: https://github.com/apache/geode-examples.git
+ branch: develop
+ depth: 10
+- name: geode-build-version
+ type: semver
+ source:
+ driver: gcs
+ bucket: ((!concourse-bucket))
+ key: (( concat metadata.geode-build-branch "/version" ))
+ json_key: ((!concourse-gcp-key))
+ initial_version: 1.3.0
+- name: geode-build-artifact
+ type: gcs-resource
+ source:
+ bucket: ((!public-bucket))
+ json_key: ((!concourse-gcp-key))
+ regexp: (( concat "artifacts/" metadata.geode-build-branch "/geodefiles-(.*).tgz" ))
+- name: send-notification-email
+ type: email
+ source:
+ smtp:
+ host: ((!source-email-server))
+ port: "587"
+ username: ((!source-email-username))
+ password: ((!source-email-password))
+ from: ((!source-email-address))
+ to: [ ((!notification-email-address)) ]
+
+groups:
+- name: main
+ jobs:
+ - Build
+ - DistributedTest
+ - AcceptanceTest
+ - IntegrationTest
+ - FlakyTest
+ - TestExamples
+ - UpdatePassingRef
+- name: UITests
+ jobs:
+ - Build
+ - UITests
+
+jobs:
+- name: Build
+ serial: true
+ public: true
+ plan:
+ - get: geode
+ trigger: true
+ - get: geode-ci
+ - get: geode-build-version
+ params: {pre: build}
+ - get: docker-geode-build-image
+ - task: build
+ image: docker-geode-build-image
+ config:
+ platform: linux
+ inputs:
+ - name: geode
+ - name: geode-ci
+ - name: geode-build-version
+ outputs:
+ - name: built-geode
+ - name: results
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ path: geode-ci/ci/scripts/build.sh
+ on_failure:
+ aggregate:
+ - put: send-notification-email
+ params:
+ subject: results/subject
+ body: results/body
+ ensure:
+ aggregate:
+ - put: geode-build-artifact
+ params:
+ file: built-geode/geodefiles-*.tgz
+ - put: geode-build-version
+ params:
+ file: results/number
+- name: TestExamples
+ serial: true
+ public: true
+ plan:
+ - get: geode
+ passed: [AcceptanceTest, DistributedTest, IntegrationTest]
+ trigger: true
+ - aggregate:
+ - get: geode-ci
+ - get: geode-examples
+ trigger: true
+ - get: docker-geode-build-image
+ params:
+ rootfs: true
+ - task: testexamples
+ image: docker-geode-build-image
+ privileged: true
+ timeout: 7h
+ config:
+ inputs:
+ - name: geode-ci
+ - name: geode-examples
+ - name: docker-geode-build-image
+ platform: linux
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ args:
+ path: geode-ci/ci/scripts/build-examples.sh
+
+- name: UpdatePassingRef
+ serial: true
+ public: true
+ plan:
+ - get: geode
+ passed: [AcceptanceTest, DistributedTest, IntegrationTest]
+ trigger: true
+ - get: geode-ci
+ - task: updatepassingref
+ image: docker-geode-build-image
+ config:
+ inputs:
+ - name: geode
+ - name: geode-ci
+ platform: linux
+ outputs:
+ - name: results
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ path: geode-ci/ci/scripts/update-passing-ref.sh
diff --git a/ci/pipelines/geode-build/deploy_pipeline.sh b/ci/pipelines/geode-build/deploy_pipeline.sh
new file mode 100755
index 0000000..7e33cf9
--- /dev/null
+++ b/ci/pipelines/geode-build/deploy_pipeline.sh
@@ -0,0 +1,84 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+ SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+ SOURCE="$(readlink "$SOURCE")"
+ [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
+if ! [ -x "$(command -v spruce)" ]; then
+ echo "Spruce must be installed for pipeline deployment to work."
+ echo "For macos: 'brew tap starkandwayne/cf; brew install spruce'"
+ echo "For Ubuntu: follow the instructions at https://github.com/geofffranks/spruce"
+ echo ""
+ exit 1
+else
+ SPRUCE=$(which spruce || true)
+fi
+
+set -e
+
+if [ -z "${GEODE_BRANCH}" ]; then
+ GEODE_BRANCH=$(git rev-parse --abbrev-ref HEAD)
+fi
+
+if [ "${GEODE_BRANCH}" = "HEAD" ]; then
+ echo "Unable to determine branch for deployment. Quitting..."
+ exit 1
+fi
+
+BIN_DIR=${OUTPUT_DIRECTORY}/bin
+TMP_DIR=${OUTPUT_DIRECTORY}/tmp
+mkdir -p ${BIN_DIR} ${TMP_DIR}
+curl -o ${BIN_DIR}/fly "https://concourse.apachegeode-ci.info/api/v1/cli?arch=amd64&platform=linux"
+chmod +x ${BIN_DIR}/fly
+
+PATH=${PATH}:${BIN_DIR}
+
+for i in ${SCRIPTDIR}/test-stubs/*.yml; do
+ X=$(basename $i)
+ echo "Merging ${i} into ${TMP_DIR}/${X}"
+ ${SPRUCE} merge --prune metadata \
+ <(echo "metadata:"; \
+ echo " geode-build-branch: ${GEODE_BRANCH}") \
+ ${SCRIPTDIR}/test-template.yml \
+ ${i} > ${TMP_DIR}/${X}
+done
+
+echo "Spruce branch-name into resources"
+${SPRUCE} merge --prune metadata \
+ ${SCRIPTDIR}/base.yml \
+ <(echo "metadata:"; \
+ echo " geode-build-branch: ${GEODE_BRANCH}"; \
+ echo " ") \
+ ${TMP_DIR}/*.yml > ${TMP_DIR}/final.yml
+
+
+TARGET="geode"
+
+TEAM="staging"
+if [[ "${GEMFIRE_BUILD_BRANCH}" == develop ]] || [[ ${GEMFIRE_BUILD_BRANCH} =~ ^support/* ]]; then
+ TEAM="main"
+fi
+
+fly login -t ${TARGET} -n ${TEAM} -c https://concourse.apachegeode-ci.info -u ${CONCOURSE_USERNAME} -p ${CONCOURSE_PASSWORD}
+fly -t ${TARGET} set-pipeline --non-interactive --pipeline ${GEODE_BRANCH} --config ${TMP_DIR}/final.yml
+
diff --git a/ci/pipelines/geode-build/test-stubs/acceptance.yml b/ci/pipelines/geode-build/test-stubs/acceptance.yml
new file mode 100644
index 0000000..45da578
--- /dev/null
+++ b/ci/pipelines/geode-build/test-stubs/acceptance.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+metadata:
+ job:
+ name: AcceptanceTest
+ gradle_task: :geode-assembly:acceptanceTest geode-connectors:acceptanceTest
+ artifact_slug: acceptancetestfiles
+ dunit:
+ parallel: false
+ forks: 0
+ call_stack_timeout: 25200
+ timeout: 8h
+ size: []
diff --git a/ci/pipelines/geode-build/test-stubs/distributed.yml b/ci/pipelines/geode-build/test-stubs/distributed.yml
new file mode 100644
index 0000000..93a8c6a
--- /dev/null
+++ b/ci/pipelines/geode-build/test-stubs/distributed.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+metadata:
+ job:
+ name: DistributedTest
+ gradle_task: distributedTest
+ artifact_slug: distributedtestfiles
+ dunit:
+ parallel: true
+ forks: 7
+ call_stack_timeout: 25200
+ timeout: 8h
+ size: [large]
diff --git a/ci/pipelines/geode-build/test-stubs/flaky.yml b/ci/pipelines/geode-build/test-stubs/flaky.yml
new file mode 100644
index 0000000..b5d7afb
--- /dev/null
+++ b/ci/pipelines/geode-build/test-stubs/flaky.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+metadata:
+ job:
+ name: FlakyTest
+ gradle_task: flakyTest
+ artifact_slug: flakytestfiles
+ dunit:
+ parallel: false
+ forks: 0
+ call_stack_timeout: 25200
+ timeout: 8h
+ size: []
diff --git a/ci/pipelines/geode-build/test-stubs/integration.yml b/ci/pipelines/geode-build/test-stubs/integration.yml
new file mode 100644
index 0000000..e672f64
--- /dev/null
+++ b/ci/pipelines/geode-build/test-stubs/integration.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+metadata:
+ job:
+ name: IntegrationTest
+ gradle_task: integrationTest
+ artifact_slug: integrationtestfiles
+ dunit:
+ parallel: true
+ forks: 1
+ call_stack_timeout: 25200
+ timeout: 8h
+ size: []
diff --git a/ci/pipelines/geode-build/test-stubs/ui.yml b/ci/pipelines/geode-build/test-stubs/ui.yml
new file mode 100644
index 0000000..60404c6
--- /dev/null
+++ b/ci/pipelines/geode-build/test-stubs/ui.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+metadata:
+ job:
+ name: UITests
+ gradle_task: uiTest
+ artifact_slug: uitestfiles
+ dunit:
+ parallel: true
+ forks: 1
+ call_stack_timeout: 25200
+ timeout: 2h
+ size: []
diff --git a/ci/pipelines/geode-build/test-template.yml b/ci/pipelines/geode-build/test-template.yml
new file mode 100644
index 0000000..a29e762
--- /dev/null
+++ b/ci/pipelines/geode-build/test-template.yml
@@ -0,0 +1,84 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+jobs:
+- name: (( grab metadata.job.name ))
+ serial: true
+ public: true
+ plan:
+ - aggregate:
+ - get: geode
+ passed: [Build]
+ trigger: true
+ - get: geode-ci
+ - get: geode-build-version
+ passed: [Build]
+ - get: docker-geode-build-image
+ params:
+ rootfs: true
+ - task: runtests
+ image: docker-geode-build-image
+ tags: (( grab metadata.job.size ))
+ privileged: true
+ timeout: (( grab metadata.job.timeout ))
+ config:
+ inputs:
+ - name: geode
+ - name: geode-ci
+ - name: docker-geode-build-image
+ - name: geode-build-version
+ platform: linux
+ outputs:
+ - name: built-geode
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ PARALLEL_DUNIT: (( grab metadata.job.dunit.parallel ))
+ DUNIT_PARALLEL_FORKS: (( grab metadata.job.dunit.forks ))
+ CALL_STACK_TIMEOUT: (( grab metadata.job.call_stack_timeout ))
+ run:
+ args:
+ - (( grab metadata.job.gradle_task ))
+ - (( grab metadata.job.artifact_slug ))
+ path: geode-ci/ci/scripts/test-run.sh
+ on_failure:
+ aggregate:
+ - put: send-notification-email
+ params:
+ subject: built-geode/subject
+ body: built-geode/body
+ ensure:
+ aggregate:
+ - task: archive-results
+ image: docker-geode-build-image
+ config:
+ inputs:
+ - name: geode
+ - name: geode-ci
+ - name: geode-build-version
+ - name: built-geode
+ platform: linux
+ params:
+ MAINTENANCE_VERSION: (( grab metadata.geode-build-branch ))
+ SERVICE_ACCOUNT: ((!concourse-gcp-account))
+ PUBLIC_BUCKET: ((!public-bucket))
+ run:
+ args:
+ - (( grab metadata.job.gradle_task ))
+ - (( grab metadata.job.artifact_slug ))
+ path: geode-ci/ci/scripts/test-archive.sh
diff --git a/ci/pipelines/meta.yml b/ci/pipelines/meta.yml
index 63d6b68..7bb4f27 100644
--- a/ci/pipelines/meta.yml
+++ b/ci/pipelines/meta.yml
@@ -36,23 +36,29 @@ resources:
type: git
source:
uri: https://github.com/apache/geode.git
- branch: develop
+ branch: ((!geode-build-branch))
paths:
- - ci/pipelines/develop.yml
+ - ci/*
- name: geode-docker-images-pipeline
type: git
source:
uri: https://github.com/apache/geode.git
- branch: develop
+ branch: ((!geode-build-branch))
paths:
- ci/pipelines/docker-images.yml
- name: geode-metrics-pipeline
type: git
source:
uri: https://github.com/apache/geode.git
- branch: develop
+ branch: ((!geode-build-branch))
paths:
- ci/pipelines/metrics.yml
+- name: apachegeode-build-concourse-docker-image
+ type: docker-image
+ source:
+ username: ((!docker-username))
+ password: ((!docker-password))
+ repository: gcr.io/apachegeode-ci/apachegeode-build-concourse
jobs:
- name: set-develop-pipeline
@@ -61,12 +67,23 @@ jobs:
plan:
- get: geode-develop-pipeline
trigger: true
- - put: apachegeode-concourse
- params:
- pipelines:
- - name: develop
- team: main
- config_file: geode-develop-pipeline/ci/pipelines/develop.yml
+ - get: apachegeode-build-concourse-docker-image
+ - task: deploy-build
+ image: apachegeode-build-concourse-docker-image
+ config:
+ inputs:
+ - name: geode-develop-pipeline
+ outputs:
+ - name: results
+ platform: linux
+ params:
+ OUTPUT_DIRECTORY: results
+ GEODE_BRANCH: ((!geode-build-branch))
+ CONCOURSE_USERNAME: ((!concourse-username))
+ CONCOURSE_PASSWORD: ((!concourse-password))
+ run:
+ path: geode-develop-pipeline/ci/pipelines/geode-build/deploy_pipeline.sh
+
- name: set-docker-images-pipeline
serial: true
public: true
diff --git a/ci/scripts/test-run.sh b/ci/scripts/test-run.sh
index 774ed6c..d211493 100755
--- a/ci/scripts/test-run.sh
+++ b/ci/scripts/test-run.sh
@@ -114,12 +114,14 @@ popd
export FILENAME=${BASE_FILENAME}-${FULL_PRODUCT_VERSION}.tgz
-if [ -n "${PARALLEL_DUNIT}" ]; then
+if [[ -n "${PARALLEL_DUNIT}" && "${PARALLEL_DUNIT}" == "true" ]]; then
PARALLEL_DUNIT="-PparallelDunit"
-fi
-
-if [ -n "${DUNIT_PARALLEL_FORKS}" ]; then
- DUNIT_PARALLEL_FORKS="-PdunitParallelForks=${DUNIT_PARALLEL_FORKS}"
+ if [ -n "${DUNIT_PARALLEL_FORKS}" ]; then
+ DUNIT_PARALLEL_FORKS="-PdunitParallelForks=${DUNIT_PARALLEL_FORKS}"
+ fi
+else
+ PARALLEL_DUNIT=""
+ DUNIT_PARALLEL_FORKS=""
fi
pushd ${GEODE_BUILD}
--
To stop receiving notification emails like this one, please contact
pivotalsarge@apache.org.