From: robert.tomczyk Date: Mon, 3 Jun 2019 11:59:17 +0000 (+0100) Subject: OPENDEV TEST: Enable push-upstream test script for openstack-dev/sandbox project X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=02da4509d7adcef3fa9655a287adf1d912659e42;p=infra%2Fcicd.git OPENDEV TEST: Enable push-upstream test script for openstack-dev/sandbox project Change-Id: Id2f53e43cfa27443579dfb0e8601537030bb1b1e --- diff --git a/jjb/opendev/openstack-dev-sandbox/openstack-dev-sandbox-push-upstream-jobs.yml b/jjb/opendev/openstack-dev-sandbox/openstack-dev-sandbox-push-upstream-jobs.yml index b1a70d0a5..96273ba66 100644 --- a/jjb/opendev/openstack-dev-sandbox/openstack-dev-sandbox-push-upstream-jobs.yml +++ b/jjb/opendev/openstack-dev-sandbox/openstack-dev-sandbox-push-upstream-jobs.yml @@ -24,6 +24,9 @@ stream: - master: branch: '{stream}' + builders: + - shell: + !include-raw-escape: ./test-push-upstream-jobs.sh jobs: - 'opendev-{project-name}-{stream}-push-upstream' diff --git a/jjb/opendev/openstack-dev-sandbox/test-push-upstream-jobs.sh b/jjb/opendev/openstack-dev-sandbox/test-push-upstream-jobs.sh new file mode 100755 index 000000000..8b5468280 --- /dev/null +++ b/jjb/opendev/openstack-dev-sandbox/test-push-upstream-jobs.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# ============LICENSE_START======================================================= +# Copyright (C) 2019 The Nordix Foundation. All rights reserved. +# ================================================================================ +# 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========================================================= + +# +# This script will take the single commit form the given Nordix Gerrit review +# and push it, and all its ancestor commit till $GERRIT_BRANCH, to OpenDev +# Gerrit. +# Pre-requisites for script to run successfully: +# - The Gerrit username in Nordix needs to match with the Gerrit username in +# OpenDev +# - infra public key on build server needs to be added to your users SSH +# Public Keys in OpenDev Gerrit +# +set -euxo pipefail + +cd "$WORKSPACE" + +opendev_gerrit_base='review.opendev.org:29418' +nordix_gerrit_rest='https://gerrit.nordix.org' + +echo >&2 "Collecting information about what and how to push towards OpenDev" + +# The git hash of the commit in the review this job runs on +commit_hash="$GERRIT_PATCHSET_REVISION" + +# GERRIT_PROJECT is in the form of opendev/ +opendev_project=$(echo "$GERRIT_PROJECT" | cut -d/ -f2- ) + +# Nordix Gerrit can map the email address of the user pushed the change to +# the review to the Gerrit username of the accound in Nordix Gerrit. This +# should match with the Gerrit username in the OpenDev Gerrit. +# TODO(gibi): parse the json propely if there are tools (e.g. jq) available on +# the jenkins slave +username=$( + curl -s -H 'Accept: application/json' \ + "$nordix_gerrit_rest/accounts/?q=email:$GERRIT_EVENT_ACCOUNT_EMAIL&o=DETAILS" \ + | tee /dev/stderr \ + | sed -n 's/^.*"username":"\(\S*\)".*$/\1/p') + +opendev_remote_url="ssh://$username@$opendev_gerrit_base/$opendev_project" + +# GERRIT_BRANCH is the _intended_ branch of the commit under review +# E.g. git push HEAD:refs/for/master => GERRIT_BRANCH='master' +# GERRIT_TOPIC is the rest of the refspec after GERRIT_BRANCH +refspec="$commit_hash:refs/for/$GERRIT_BRANCH/$GERRIT_TOPIC" + +echo >&2 "Pushing to OpenDev" +git push "$opendev_remote_url" "$refspec"