-Subproject commit 766dbef8a63d824d6e551d4f179806521be95d13
+Subproject commit 5d336574e77fb349ace15356ef8ffb816d463544
--- /dev/null
+#!/bin/bash -l
+set -eu -o pipefail
+
+# If the project is autorelease then we do not need to cd
+if [ "$GERRIT_PROJECT" != "releng/autorelease" ]; then
+ cd "$WORKSPACE/$GERRIT_PROJECT"
+fi
+
+echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
+git fetch origin "${GERRIT_REFSPEC}" && git checkout FETCH_HEAD
+
+# If the project is autorelease then we need to init and update submodules
+if [ "$GERRIT_PROJECT" == "releng/autorelease" ]; then
+ git submodule update --init
+ # The previous checkout might have failed to remove directory of a submodule being removed.
+ # See https://stackoverflow.com/a/10761699
+ git clean -dff
+fi
- builder:
name: autorelease-checkout-gerrit-patch
builders:
- - shell: |
- #!/bin/bash -l
- set -eu -o pipefail
-
- # If the project is autorelease then we do not need to cd
- if [ "$GERRIT_PROJECT" != "releng/autorelease" ]; then
- cd "$WORKSPACE/$GERRIT_PROJECT"
- fi
-
- echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
- git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
-
- # If the project is autorelease then we need to init and update submodules
- if [ "$GERRIT_PROJECT" == "releng/autorelease" ]; then
- git submodule update --init
- # The previous checkout might have failed to remove directory of a submodule being removed.
- # See https://stackoverflow.com/a/10761699
- git clean -dff
- fi
+ - shell: !include-raw-escape: autorelease-checkout-gerrit-patch.sh
- builder:
name: autorelease-determine-merge-order
- builder:
name: autorelease-generate-release-patches
builders:
- - shell: !include-raw:
+ - shell: !include-raw-escape:
- prepare-release.sh
- builder:
name: autorelease-get-integration-test-variables
builders:
- integration-set-variables
- - shell: !include-raw: autorelease-get-integration-test-variables.sh
+ - shell: !include-raw-escape: autorelease-get-integration-test-variables.sh
- inject:
properties-file: variables.prop
- builder:
name: autorelease-generate-release-notes
builders:
- - shell: !include-raw:
+ - shell: !include-raw-escape:
- generate-release-notes.sh
- builder:
name: autorelease-update-project-views
builders:
- - shell: !include-raw: update-autorelease-projects-views.sh
+ - shell: !include-raw-escape: update-autorelease-projects-views.sh
- builder:
name: autorelease-update-validate-projects
builders:
- - shell: !include-raw: update-validate-autorelease-projects.sh
+ - shell: !include-raw-escape: update-validate-autorelease-projects.sh
- builder:
name: autorelease-compare-projects
- SUCCESS
- UNSTABLE
build-steps:
- - shell: !include-raw: notify-build-failure.sh
+ - shell: !include-raw-escape: notify-build-failure.sh
mark-unstable-if-failed: true
- builder:
name: docs-update
builders:
- - shell: !include-raw:
+ - shell: !include-raw-escape:
- docs_version_bump.sh
- docs_version_bump_projects.sh
--- /dev/null
+#!/bin/bash -l
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2024 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script performs version bumping activities for an ODL release.
+echo "---> distribution-check-verify-groupid.sh"
+
+echo "These are allowed projects: $ALLOW_PROJECTS"
+echo "These are distribution pulled projects:"
+EXIT_CODE="0"
+for PROJECT in /tmp/r/org/opendaylight/*; do
+ if [[ ! -d "$PROJECT" ]]; then
+ continue
+ fi
+ echo "Checking $PROJECT"
+ if [[ "$ALLOW_PROJECTS" != *"$PROJECT"* ]]; then
+ echo "ERROR: Not allowed project $PROJECT pulled"
+ EXIT_CODE="1"
+ fi
+done
+exit $EXIT_CODE
--- /dev/null
+#!/bin/bash -l
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2024 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script performs version bumping activities for an ODL release.
+echo "---> distribution-check-wipe.sh"
+
+echo "wipe r: the local Maven repository"
+rm -rfv /tmp/r
+echo "wipe n: the fake remote (Nexus) repository"
+rm -rfv /tmp/n
+echo "wipe t: the transient repository used in some manipulations"
+rm -rfv /tmp/t
+echo "create n: multithreaded execution might fail at creating it."
+mkdir /tmp/n
+echo "detecting distribution allowed projects"
+# Some allowed projects cannot be detected in distribution because they do not produce features.
+ALLOW_PROJECTS=(yangtools mdsal openflowjava)
+if [[ "$KARAF_VERSION" == "odl" ]]; then
+# shellcheck disable=SC2207
+ALLOW_PROJECTS+=($(grep '<groupId>org.opendaylight.' -Rh distribution \
+| sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
+| sed -e 's%</groupId>%%' | sort -u))
+else
+# For Managed distro we only look at the features folder
+# shellcheck disable=SC2207
+ALLOW_PROJECTS+=($(grep '<groupId>org.opendaylight.' -Rh distribution/features \
+| sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
+| sed -e 's%</groupId>%%' | sort -u))
+fi
+echo "Allowed projects are " "${ALLOW_PROJECTS[@]}"
+echo "ALLOW_PROJECTS= " "${ALLOW_PROJECTS[@]}" > allowed_projects.txt
name: distribution-check-wipe
# Step zero: Wipe file repositories up front.
builders:
- - shell: |
- echo "wipe r: the local Maven repository"
- rm -rfv /tmp/r
- echo "wipe n: the fake remote (Nexus) repository"
- rm -rfv /tmp/n
- echo "wipe t: the transient repository used in some manipulations"
- rm -rfv /tmp/t
- echo "create n: multithreaded execution might fail at creating it."
- mkdir /tmp/n
- echo "detecting distribution allowed projects"
- # Some allowed projects cannot be detected in distribution because they do not produce features.
- ALLOW_PROJECTS=(yangtools mdsal openflowjava)
- if [[ "$KARAF_VERSION" == "odl" ]]; then
- ALLOW_PROJECTS+=(`grep '<groupId>org.opendaylight.' -Rh distribution \
- | sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
- | sed -e 's%</groupId>%%' | sort -u`)
- else
- # For Managed distro we only look at the features folder
- ALLOW_PROJECTS+=(`grep '<groupId>org.opendaylight.' -Rh distribution/features \
- | sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
- | sed -e 's%</groupId>%%' | sort -u`)
- fi
- echo "Allowed projects are ${ALLOW_PROJECTS[@]}"
- echo "ALLOW_PROJECTS=${ALLOW_PROJECTS[@]}" > allowed_projects.txt
+ - shell: !include-raw-escape: distribution-check-wipe.sh
- builder:
name: distribution-check-build-project
# Arguments:
# gerrit-project: Project name as nexus URI part. Typically '$GERRIT_PROJECT'.
builders:
- - shell: |
- echo "These are allowed projects: $ALLOW_PROJECTS"
- echo "These are distribution pulled projects:"
- EXIT_CODE="0"
- for PROJECT in `ls /tmp/r/org/opendaylight`; do
- echo "checking $PROJECT"
- if [[ "$ALLOW_PROJECTS" != *"$PROJECT"* ]]; then
- echo "ERROR: Not allowed project $PROJECT pulled"
- EXIT_CODE="1"
- fi
- done
- exit $EXIT_CODE
- echo "verify project groupId"
- mkdir -p /tmp/t/org/opendaylight/{gerrit-project}
- mv /tmp/n/org/opendaylight/{gerrit-project}/* /tmp/t/org/opendaylight/{gerrit-project}/
- test -z "`find /tmp/n/ -type f`" || ( echo "ERROR: Mismatched groupId detected (see above)." && false )
- rm -rf /tmp/n
- mv /tmp/t /tmp/n
+ - shell: !include-raw-escape: distribution-check-verify-groupid.sh
- builder:
name: distribution-check-download-deps
# KARAF_VERSION: 'karaf4' or 'karaf3'.
# Use distribution-karaf-version macro to customize.
builders:
- - shell: !include-raw: distribution-check-bootup.sh
+ - shell: !include-raw-escape: distribution-check-bootup.sh
name: "distribution-verify-{type}-{stream}"
disable-job: "false"
+ jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
project-type: freestyle
node: centos8-builder-8c-8g
publishers:
- findbugs
- - lf-jacoco-report
+ - lf-jacoco-report:
+ exclude-pattern: { jacoco-exclude-pattern }
- lf-infra-publish
- email-notification:
email-recipients: "{email-recipients}"
# https://issues.apache.org/jira/browse/MNG-5666
disable-job: false
+ jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
project-type: maven
node: "centos8-builder-8c-8g"
id: ""
unique-version: true
deploy-unstable: false
- - lf-jacoco-report
+ - lf-jacoco-report:
+ exclude-pattern: "{jacoco-exclude-pattern}"
- lf-infra-publish
- email-notification:
email-recipients: "{email-recipients}"
--- /dev/null
+#!/bin/bash
+
+echo "Archiving csit artifacts"
+cd "$WORKSPACE" || exit
+mkdir -p ./archives
+for i in $(seq 1 "${NUM_ODL_SYSTEM}"); do
+ NODE_FOLDER="./archives/odl_${i}"
+ mkdir -p "${NODE_FOLDER}"
+ mv odl"${i}"_* "${NODE_FOLDER}" || true
+ mv karaf_"${i}"_*_threads* "${NODE_FOLDER}" || true
+ mv -- *_"${i}".png "${NODE_FOLDER}" || true
+ mv /tmp/odl"${i}"_* "${NODE_FOLDER}" || true
+ mv gclogs-"${i}" "${NODE_FOLDER}" || true
+done
+curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip"
+unzip -d ./archives robot-plugin.zip
+mv -- *.log *.log.gz *.csv *.png ./archives || true # Don't fail if file missing
+# TODO: Can the following line ever fail?
+find . -type f -name '*.hprof' -print0 \
+ | tar -cvf - --null -T - | xz --threads=0 > ./archives/hprof.tar.xz
+# TODO: Tweak the compression level if better ratio (or speed) is needed.
--- /dev/null
+#!/bin/bash
+#The following script runs any configurable postplan stored in test/csit/postplans.
+if [ -f "${WORKSPACE}/test/csit/postplans/${TESTPLAN}" ]; then
+ echo "postplan exists!!!"
+ echo "Changing the postplan path..."
+ script_name=${WORKSPACE}/test/csit/postplans/${TESTPLAN}
+ sed "s:integration:${WORKSPACE}:" "${script_name}" > postplan.txt
+ cat postplan.txt
+ grep -Ev '(^[[:space:]]*#|^[[:space:]]*$)' postplan.txt | while read -r line ; do
+ echo "Executing ${line}..."
+ ${line}
+ done
+fi
- builder:
name: integration-get-slave-addresses
builders:
- - shell: !include-raw: integration-get-slave-addresses.sh
+ - shell: !include-raw-escape: integration-get-slave-addresses.sh
- builder:
name: integration-set-variables
# Required bash variables:
# KARAF_VERSION: 'karaf4' or 'karaf3'. Use distribution-karaf-version macro to set.
builders:
- - shell: !include-raw: integration-set-variables.sh
+ - shell: !include-raw-escape: integration-set-variables.sh
- inject:
properties-file: set_variables.env
# KARAF_VERSION: 'karaf4' or 'karaf3'. Use distribution-karaf-version macro to set.
builders:
- integration-set-variables
- - shell: !include-raw: integration-detect-variables.sh
+ - shell: !include-raw-escape: integration-detect-variables.sh
- inject:
properties-file: detect_variables.env
- builder:
name: integration-deploy-controller-run-test
builders:
- - shell: !include-raw: integration-deploy-controller-run-test.sh
+ - shell: !include-raw-escape: integration-deploy-controller-run-test.sh
# Macro: integration-deply-non-karaf-controller-run-test
# Operation: this macro deploys non-karaf controller application and run test
- builder:
name: integration-run-test
builders:
- - shell: !include-raw: integration-run-test.sh
+ - shell: !include-raw-escape: integration-run-test.sh
# Macro: integration-configure-clustering
# Operation: this macro configures the clustering
- builder:
name: integration-configure-clustering
builders:
- - shell: !include-raw: integration-configure-clustering.sh
+ - shell: !include-raw-escape: integration-configure-clustering.sh
# Macro: integration-start-cluster-run-test
# Operation: this macro starts the 3-node cluster and runs test
- builder:
name: integration-start-cluster-run-test
builders:
- - shell: !include-raw: integration-start-cluster-run-test.sh
+ - shell: !include-raw-escape: integration-start-cluster-run-test.sh
# Macro: integration-install-robotframework
# Operation: Installs robotframework using pip to a virtualenv
- builder:
name: integration-install-robotframework
builders:
- - shell: !include-raw: integration-install-robotframework.sh
+ - shell: !include-raw-escape: integration-install-robotframework.sh
# Macro: integration-cleanup-tmp
# Operation: Cleans up temporary files created by build
- builder:
name: integration-cleanup-tmp
builders:
- - shell: !include-raw: integration-cleanup-tmp.sh
+ - shell: !include-raw-escape: integration-cleanup-tmp.sh
# Macro: integration-multipatch-builder
# Operation: checks out multiple patches and builds custom distribution
- builder:
name: integration-multipatch-builder
builders:
- - shell: !include-raw: multipatch-distribution.sh
+ - shell: !include-raw-escape: multipatch-distribution.sh
# Macro: integration-rebase-patch
# Operation: For cloned project, rebase checked-out Gerrit patch onto $DISTROBRANCH.
- builder:
name: integration-rebase-gerrit-patch
builders:
- - shell: !include-raw: integration-rebase-gerrit-patch.sh
+ - shell: !include-raw-escape: integration-rebase-gerrit-patch.sh
# Macro: integration-install-common-functions
# Operation: Copy the common-functions.sh script to csit nodes
- builder:
name: integration-install-common-functions
builders:
- - shell: !include-raw:
+ - shell: !include-raw-escape:
- copy-common-functions.sh
- common-functions.sh
# Required bash variables:
# KARAF_ARTIFACT: 'karaf' or 'distribution-karaf'. Use integration-set-variables.
builders:
- - shell: !include-raw: integration-compare-distributions.sh
+ - shell: !include-raw-escape: integration-compare-distributions.sh
+
+- builder:
+ name: integration-csit-archive-artifacts
+ builders:
+ - shell: !include-raw-escape: integration-csit-archive-artifacts.sh
- builder:
name: integration-upload-distribution
- SUCCESS
- UNSTABLE
build-steps:
- - shell: |
- #!/bin/bash
- echo "Archiving csit artifacts"
- cd $WORKSPACE
- mkdir -p ./archives
- for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
- NODE_FOLDER="./archives/odl_${i}"
- mkdir -p ${NODE_FOLDER}
- mv odl${i}_* ${NODE_FOLDER} || true
- mv karaf_${i}_*_threads* ${NODE_FOLDER} || true
- mv *_${i}.png ${NODE_FOLDER} || true
- mv /tmp/odl${i}_* ${NODE_FOLDER} || true
- mv gclogs-${i} ${NODE_FOLDER} || true
- done
- curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip"
- unzip -d ./archives robot-plugin.zip
- mv *.log *.log.gz *.csv *.png ./archives || true # Don't fail if file missing
- # TODO: Can the following line ever fail?
- find . -type f -name *.hprof -print0 \
- | tar -cvf - --null -T - | xz --threads=0 > ./archives/hprof.tar.xz
- # TODO: Tweak the compression level if better ratio (or speed) is needed.
+ - shell: !include-raw-escape: integration-csit-archive-artifacts.sh
mark-unstable-if-failed: true
- publisher:
- SUCCESS
- UNSTABLE
build-steps:
- - shell: |
- #!/bin/bash
- #The following script runs any configurable postplan stored in test/csit/postplans.
- if [ -f "${WORKSPACE}/test/csit/postplans/${TESTPLAN}" ]; then
- echo "postplan exists!!!"
- echo "Changing the postplan path..."
- script_name=${WORKSPACE}/test/csit/postplans/${TESTPLAN}
- cat ${script_name} | sed "s:integration:${WORKSPACE}:" > postplan.txt
- cat postplan.txt
- egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' postplan.txt | while read -r line ; do
- echo "Executing ${line}..."
- ${line}
- done
- fi
+ - shell: !include-raw-escape: integration-csit-run-postscript.sh
mark-unstable-if-failed: true
- SUCCESS
- UNSTABLE
build-steps:
- - shell: !include-raw: generate-csit-status-report.sh
+ - shell: !include-raw-escape: generate-csit-status-report.sh
mark-unstable-if-failed: true
**/target/surefire-reports/*-output.txt
mvn-goals: clean install
disable-job: false
+ jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
#####################
# Job Configuration #
email-recipients: "{email-recipients}"
email-prefix: "{email-upstream}"
- findbugs
- - lf-jacoco-report
+ - lf-jacoco-report:
+ exclude-pattern: "{jacoco-exclude-pattern}"
- lf-infra-publish
- job-template:
# Default parameters #
######################
disable-job: "false"
+ jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
archive-artifacts: >
**/*.log
id: ""
unique-version: true
deploy-unstable: false
- - lf-jacoco-report
+ - lf-jacoco-report:
+ exclude-pattern: "{jacoco-exclude-pattern}"
- lf-infra-publish