From: robert.tomczyk Date: Wed, 22 May 2019 17:19:17 +0000 (+0100) Subject: Opendaylight: Introducing Opendeyight to Nordix X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=a9b3ba6f2745e10b8e91ef61dc7181eddf74c830;p=infra%2Fcicd.git Opendaylight: Introducing Opendeyight to Nordix Adding the rebase and push upstream for the ODL projects: - controller - intergration/test - mdsal - netconf Change-Id: I64a434d6ae596b63f6c323073acea58f34e66a14 --- diff --git a/jjb/opendaylight/controller/controller-push-upstream-jobs.yml b/jjb/opendaylight/controller/controller-push-upstream-jobs.yml new file mode 100644 index 000000000..57f434603 --- /dev/null +++ b/jjb/opendaylight/controller/controller-push-upstream-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: controller-push-upstream + project: controller + project-name: controller + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-push-upstream' diff --git a/jjb/opendaylight/controller/controller-rebase-jobs.yml b/jjb/opendaylight/controller/controller-rebase-jobs.yml new file mode 100644 index 000000000..a8a671944 --- /dev/null +++ b/jjb/opendaylight/controller/controller-rebase-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: controller-rebase + project: controller + project-name: controller + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-rebase' diff --git a/jjb/opendaylight/global-templates-opendaylight-push-upstream.yaml b/jjb/opendaylight/global-templates-opendaylight-push-upstream.yaml new file mode 100644 index 000000000..8a6fd2119 --- /dev/null +++ b/jjb/opendaylight/global-templates-opendaylight-push-upstream.yaml @@ -0,0 +1,41 @@ +- job-template: + name: 'opendaylight-{project-name}-{stream}-push-upstream' + + node: infra-build01-ubuntu1804 + + disabled: false + + concurrent: true + + properties: + - logrotate + + parameters: + - project-parameters: + project: 'opendaylight/{project}' + branch: '{branch}' + - nordix-gerrit-parameters + + scm: + - git-scm-gerrit: + ssh-credentials-id: nordixinfra-nordix-gerrit-ssh + branch: '{branch}' + refspec: $GERRIT_REFSPEC + + triggers: + - nordix-gerrit-push-upstream: + project: 'opendaylight/{project}' + branch: '{branch}' + files: '**' + + wrappers: + - build-timeout: + timeout: 10 + + builders: + - shell: + !include-raw-escape: ./push-upstream-jobs.sh + + publishers: + - notify-slack: + slack-channel: '#infra' diff --git a/jjb/opendaylight/global-templates-opendaylight-rebase.yaml b/jjb/opendaylight/global-templates-opendaylight-rebase.yaml new file mode 100644 index 000000000..b9ee8f0e0 --- /dev/null +++ b/jjb/opendaylight/global-templates-opendaylight-rebase.yaml @@ -0,0 +1,46 @@ +- job-template: + name: 'opendaylight-{project-name}-{stream}-rebase' + + node: infra-build01-ubuntu1804 + + disabled: false + + concurrent: false + + properties: + - logrotate + + parameters: + - project-parameters: + project: '{project}' + branch: '{branch}' + - odl-gerrit-parameters + - string: + name: NORDIX_REMOTE + default: 'ssh://infra@gerrit.nordix.org:29418/opendaylight/{project}.git' + description: The remote to add for Nordix. + + scm: + - git-scm: + ssh-credentials-id: nordixinfra-lfn-gerrit-ssh + branch: '{branch}' + refspec: '' + + triggers: + - odl-gerrit-trigger-change-merged: + project: '{project}' + branch: '{branch}' + files: '**' + - timed: "@midnight" + + wrappers: + - build-timeout: + timeout: 10 + + builders: + - shell: + !include-raw-escape: ../global/rebase-jobs.sh + + publishers: + - notify-slack: + slack-channel: '#infra' diff --git a/jjb/opendaylight/integration-test/integration-test-push-upstream-jobs.yml b/jjb/opendaylight/integration-test/integration-test-push-upstream-jobs.yml new file mode 100644 index 000000000..ed5af0c3c --- /dev/null +++ b/jjb/opendaylight/integration-test/integration-test-push-upstream-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: integration-test-push-upstream + project: integration/test + project-name: integration-test + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-push-upstream' diff --git a/jjb/opendaylight/integration-test/integration-test-rebase-jobs.yml b/jjb/opendaylight/integration-test/integration-test-rebase-jobs.yml new file mode 100644 index 000000000..5734206c8 --- /dev/null +++ b/jjb/opendaylight/integration-test/integration-test-rebase-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: integration-test-rebase + project: integration/test + project-name: integration-test + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-rebase' diff --git a/jjb/opendaylight/mdsal/mdsal-push-upstream-jobs.yml b/jjb/opendaylight/mdsal/mdsal-push-upstream-jobs.yml new file mode 100644 index 000000000..9fce64697 --- /dev/null +++ b/jjb/opendaylight/mdsal/mdsal-push-upstream-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: mdsal-push-upstream + project: mdsal + project-name: mdsal + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-push-upstream' diff --git a/jjb/opendaylight/mdsal/mdsal-rebase-jobs.yml b/jjb/opendaylight/mdsal/mdsal-rebase-jobs.yml new file mode 100644 index 000000000..9053eda44 --- /dev/null +++ b/jjb/opendaylight/mdsal/mdsal-rebase-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: mdsal-rebase + project: mdsal + project-name: mdsal + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-rebase' diff --git a/jjb/opendaylight/netconf/netconf-push-upstream-jobs.yml b/jjb/opendaylight/netconf/netconf-push-upstream-jobs.yml new file mode 100644 index 000000000..b6fb0d1a1 --- /dev/null +++ b/jjb/opendaylight/netconf/netconf-push-upstream-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: netconf-push-upstream + project: netconf + project-name: netconf + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-push-upstream' diff --git a/jjb/opendaylight/netconf/netconf-rebase-jobs.yml b/jjb/opendaylight/netconf/netconf-rebase-jobs.yml new file mode 100644 index 000000000..2fbbcc482 --- /dev/null +++ b/jjb/opendaylight/netconf/netconf-rebase-jobs.yml @@ -0,0 +1,29 @@ +--- +# ============LICENSE_START======================================================= +# Copyright (C) 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========================================================= +# +- project: + name: netconf-rebase + project: netconf + project-name: netconf + stream: + - master: + branch: '{stream}' + + jobs: + - 'opendaylight-{project-name}-{stream}-rebase' diff --git a/jjb/opendaylight/push-upstream-jobs.sh b/jjb/opendaylight/push-upstream-jobs.sh new file mode 100755 index 000000000..7b6fbaaaa --- /dev/null +++ b/jjb/opendaylight/push-upstream-jobs.sh @@ -0,0 +1,76 @@ +#!/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 changes that are pushed to Nordix Gerrit and push upstream to Opendaylight +# Pre-requisites for script to run successfully: +# - Author name in Nordix Gerrit equals LFID i.e. need to run "git config --global user.name " +# - infra public key on build server needs to be added to your users SSH Public Keys in Opendaylight Gerrit +# +set -o nounset +set -o pipefail + +cd $WORKSPACE +echo "Retrieving information from commit to push towards Opendaylight" +project=$(git config --local remote.origin.url | awk -F "29418/opendaylight/" '{print $2}') +message=$(git show -s --pretty=%B | grep -vi 'Signed-off-by') +username=$(git show -s --pretty=%an) + +pattern=" " +if [[ "$username" =~ $pattern ]] +then + echo "Incorrect username, use Linux Foundation ID as git user.name when pushing to Nordix" + exit 1 +fi + +echo "Setting user name and email" +git config user.email $(git show -s --pretty=%ae) +git config user.name $username + +echo "Checking out branch on master with new changes" +git reset HEAD~1 --soft +git checkout -b delivery_branch origin/$BRANCH + +git config --get remote.upstream.url +retVal=$? + +if [[ $retVal -eq 0 ]] +then + git remote rm upstream + git remote add upstream "ssh://$username@git.opendaylight.org:29418/$project.git" +else + git remote add upstream "ssh://$username@git.opendaylight.org:29418/$project.git" +fi + +echo "Committing changes and pushing upstream" +git commit -as -m "$message" +git push upstream HEAD:refs/for/$BRANCH + +retVal1=$? +if [[ $retVal1 -eq 0 ]] +then + echo "Push upstream to Opendaylight succeeded" +else + echo "Push upstream to Opendaylight failed" + exit 2 +fi + +git checkout $BRANCH +git branch -D delivery_branch