From 0c8e2ecf8970949b141435767869895793055619 Mon Sep 17 00:00:00 2001 From: "robert.tomczyk" Date: Thu, 25 Jul 2019 16:50:20 +0100 Subject: [PATCH] GEODE: Publish geode to Nordix Artifactory Change-Id: Idce925d1f77ce92cb193eddd31ff6f5f715b734b --- .../apache-geode-build.yaml | 4 +- jjb/geode/apache-geode-build/execute_build.sh | 5 +- jjb/geode/apache-geode-build/publish_geode.sh | 49 +++++++++++++++++++ .../set_geode_build_version.sh | 11 ++++- jjb/geode/apache-geode-macros.yaml | 2 + .../global-template-apache-geode-build.yaml | 8 ++- 6 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 jjb/geode/apache-geode-build/publish_geode.sh diff --git a/jjb/geode/apache-geode-build/apache-geode-build.yaml b/jjb/geode/apache-geode-build/apache-geode-build.yaml index 1e52b34f..970a3fd0 100644 --- a/jjb/geode/apache-geode-build/apache-geode-build.yaml +++ b/jjb/geode/apache-geode-build/apache-geode-build.yaml @@ -19,7 +19,7 @@ # ============LICENSE_END========================================================= - project: - name: 'apache-geode-build' + name: 'apache-geode-build-release' build-executor: 'apache-geode-execute-build-macro' artifact-slug: 'build' @@ -30,4 +30,4 @@ dunit-parallel-forks: '0' jobs: - - 'apache-geode-build-jdk{java-build-version}' + - 'apache-geode-build-release-jdk{java-build-version}' diff --git a/jjb/geode/apache-geode-build/execute_build.sh b/jjb/geode/apache-geode-build/execute_build.sh index 8e3a5b65..7a082813 100755 --- a/jjb/geode/apache-geode-build/execute_build.sh +++ b/jjb/geode/apache-geode-build/execute_build.sh @@ -49,7 +49,8 @@ if [ -e "${ROOT_DIR}/geode-build-version" ] ; then else GEODE_VERSION=$(cat ${GEODE_BUILD_VERSION_FILE} | cut -d'-' -f1) echo -e "\nGEODE VERSION is ${GEODE_VERSION}" - BUILD_ID=$(cat ${GEODE_BUILD_VERSION_FILE} | cut -d'.' -f4) + BUILD_DATE=$(cat ${GEODE_BUILD_VERSION_FILE} | cut -d'-' -f2 | cut -d'.' -f2) + echo -e "GEODE BUILD_DATE is ${BUILD_DATE}" FULL_PRODUCT_VERSION=$(cat ${GEODE_BUILD_VERSION_FILE}) echo -e "FULL PRODUCT VERSION is ${FULL_PRODUCT_VERSION}\n" fi @@ -84,7 +85,7 @@ GRADLE_ARGS="\ ${GRADLE_SKIP_TASK_OPTIONS} \ ${GRADLE_GLOBAL_ARGS} \ -Pversion=${FULL_PRODUCT_VERSION} \ - -PbuildId=${BUILD_ID} \ + -PbuildId=${BUILD_DATE} \ build install javadoc spotlessCheck rat checkPom resolveDependencies -x test" EXEC_COMMAND="mkdir -p tmp && cd geode && ${SET_JAVA_HOME} && ./gradlew ${GRADLE_ARGS}" diff --git a/jjb/geode/apache-geode-build/publish_geode.sh b/jjb/geode/apache-geode-build/publish_geode.sh new file mode 100644 index 00000000..a428a092 --- /dev/null +++ b/jjb/geode/apache-geode-build/publish_geode.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# +# ============LICENSE_START======================================================= +# Copyright (C) 2018-2019 Nordix Foundation. +# ================================================================================ +# Licensed 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +set -o errexit +set -o nounset +set -o pipefail + +ARTIFACTORY_URL="https://artifactory.nordix.org/artifactory" +GEODE_BUILD_VERSION=$(cat $WORKSPACE/geode-build-version/number) +GEODE_UPSTREAM_VERSION=$(echo ${GEODE_BUILD_VERSION} | awk -F "." '{print $1"."$2"."$3}') +cd $WORKSPACE/geode + +GEODE_ARTIFACT_PATH=$(find geode-assembly/build/distributions \( -name \*.tgz ! -name \*src.tgz \)) +GEODE_ARTIFACT=${GEODE_ARTIFACT_PATH##*/} +SHA_CHECKSUM=$(shasum -a 1 ${GEODE_ARTIFACT_PATH} | awk '{ print $1 }') +SHA256_CHECKSUM=$(sha256sum ${GEODE_ARTIFACT_PATH} | awk '{ print $1 }') +MD5_CHECKSUM=$(md5sum ${GEODE_ARTIFACT_PATH} | awk '{ print $1 }') + +if [[ ${GEODE_BUILD_VERSION} =~ \.RC[0-9]+ ]] ; then + LOCATION="staging" +else + LOCATION="release" +fi +echo "-----------------------------------------------------------" +echo -e "\nUploading ${GEODE_ARTIFACT} to geode staging area: " +echo -e "geode/${GEODE_UPSTREAM_VERSION}/${LOCATION} on artifactory.nordix.org\n" +curl -H "X-JFrog-Art-Api:${ARTIFACTORY_API_KEY}" \ + -H "X-Checksum-Sha1:${SHA_CHECKSUM}" \ + -H "X-Checksum-Sha256:${SHA256_CHECKSUM}" \ + -H "X-Checksum-MD5:${MD5_CHECKSUM}" \ + -X PUT "${ARTIFACTORY_URL}/geode/${GEODE_UPSTREAM_VERSION}/${LOCATION}/${GEODE_ARTIFACT}" \ + -T ${GEODE_ARTIFACT_PATH} +echo "-----------------------------------------------------------" diff --git a/jjb/geode/apache-geode-build/set_geode_build_version.sh b/jjb/geode/apache-geode-build/set_geode_build_version.sh index c597b8bf..4028771b 100755 --- a/jjb/geode/apache-geode-build/set_geode_build_version.sh +++ b/jjb/geode/apache-geode-build/set_geode_build_version.sh @@ -24,8 +24,15 @@ set -o pipefail cd $WORKSPACE/geode # Get most recent tag that is reachable from a commit -GEODE_VERSION=$(git describe | sed -r "s#rel/v(.*)#\1#") +GEODE_VERSION=$(git describe --abbrev=0 | sed -r "s#rel/v(.*)#\1#") +BUILD_DATE=$(date '+%Y%m%d%H%M') if [ ! -d ${WORKSPACE}/geode-build-version ] ; then mkdir ${WORKSPACE}/geode-build-version fi -echo "$GEODE_VERSION" > ${WORKSPACE}/geode-build-version/number +# Make sure the Geode tag version is in agreed fromat: \d.\d.\d.[ \d or RC\d ] +if [[ ${GEODE_VERSION} =~ ^[0-9]+\.[0-9]+\.[0-9]+\.(RC[0-9]+|[0-9]+)$ ]] ; then + echo "${GEODE_VERSION}-NORDIX.${BUILD_DATE}" > ${WORKSPACE}/geode-build-version/number +else + echo "ERROR: Incorrect geode version specified: ${GEODE_VERSION}" + exit 1 +fi diff --git a/jjb/geode/apache-geode-macros.yaml b/jjb/geode/apache-geode-macros.yaml index 71aca9f8..a2a32bec 100644 --- a/jjb/geode/apache-geode-macros.yaml +++ b/jjb/geode/apache-geode-macros.yaml @@ -38,6 +38,8 @@ !include-raw: ./apache-geode-build/set_geode_build_version.sh - shell: !include-raw: ./apache-geode-build/execute_build.sh + - shell: + !include-raw: ./apache-geode-build/publish_geode.sh - builder: name: 'apache-geode-setup-slave-macro' diff --git a/jjb/geode/global-template-apache-geode-build.yaml b/jjb/geode/global-template-apache-geode-build.yaml index a78b074a..c114282d 100644 --- a/jjb/geode/global-template-apache-geode-build.yaml +++ b/jjb/geode/global-template-apache-geode-build.yaml @@ -18,7 +18,7 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= - job-template: - name: 'apache-geode-build-jdk{java-build-version}' + name: 'apache-geode-build-release-jdk{java-build-version}' node: geode-ubuntu1804 disabled: false @@ -28,6 +28,12 @@ - logrotate - github: url: 'https://github.com/Nordix/geode.git/' + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: infra-nordix-artifactory-api-key + username: ARTIFACTORY_USER + password: ARTIFACTORY_API_KEY parameters: - string: -- 2.25.1