openjdk8 <!-- Managed by Jenkins Job Builder --> false false false true build-vm false $GIT_URL/$PROJECT/example-org/releng/ciman PROJECT Parameter to identify a Gerrit project. This is typically the project repo path as exists in Gerrit. For example: ofextensions/circuitsw releng/ciman STREAM Stream is often set to the same name as 'branch' but can sometimes be used as a name representing a project's release code name. master GERRIT_PROJECT Parameter to identify Gerrit project. This is typically the project repo path as exists in Gerrit. For example: ofextensions/circuitsw Note that Gerrit will override this parameter automatically if a job is triggered by Gerrit. releng/ciman GERRIT_BRANCH Parameter to identify a Gerrit branch. Note that Gerrit will override this parameter automatically if a job is triggered by Gerrit. master GERRIT_REFSPEC Parameter to identify a refspec when pulling from Gerrit. Note that Gerrit will override this parameter automatically if a job is triggered by Gerrit. refs/heads/master LFTOOLS_VERSION Version of lftools to install. Can be a specific version like '0.6.0' or a PEP-440 definition. https://www.python.org/dev/peps/pep-0440/ For example '<1.0.0' or '>=1.0.0,<2.0.0'. <1.0.0 M2_HOME Maven selector to be used by shell scripts /w/tools/hudson.tasks.Maven_MavenInstallation/mvn33 MAVEN_OPTS Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m MAVEN_PARAMS Maven parameters to pass to the mvn command. -Dstream=$STREAM MVN Maven selector to be used by shell scripts /w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn STAGING_PROFILE_ID Nexus staging profile ID. uuddlrlrba ARCHIVE_ARTIFACTS Artifacts to archive to the logs server. 2 origin +refs/pull/*:refs/remotes/origin/pr/* git@github.com:example-org/releng/ciman test-credential $sha1 false false true false false Default true false false false true false 10 false ^recheck$ false true true false Maven Verify mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes echo "quiet=on" > "$HOME/.wgetrc" --version mvn33 false rm "$HOME/.wgetrc" global-settings GLOBAL_SETTINGS_FILE aproject-settings SETTINGS_FILE #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## echo "---> lftools-install.sh" # Script to install lftools via a version passed in via lf-infra-parameters # # Required parameters: # # LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be # set to a strict version number like '1.2.3' or using # PEP-440 definitions. # # Examples: # <1.0.0 # >=1.0.0,<2.0.0 # # By default a released version of lftools should always be used. # The purpose of the 2 variables below is so that lftools devs can test # unreleased versions of lftools. There are 2 methods to install a dev version # of lftools: # # 1) gerrit patch: Used to test a patch that has not yet been merged. # To do this set something like this: # LFTOOLS_MODE=gerrit # LFTOOLS_REFSPEC=refs/changes/96/5296/7 # # 2) git branch: Used to install an lftools version from a specific branch. # To use this set the variables as follows: # LFTOOLS_MODE=git # LFTOOLS_REFSPEC=master # # 3) release : The intended use case and default setting. # Set LFTOOLS_MODE=release, in this case LFTOOLS_REFSPEC is unused. LFTOOLS_MODE=release # release | git | gerrit LFTOOLS_REFSPEC=master # Ensure we fail the job if any steps fail. # DO NOT set -u as virtualenv's activate script has unbound variables set -e -o pipefail virtualenv --quiet "/tmp/v/lftools" # shellcheck source=/tmp/v/lftools/bin/activate disable=SC1091 source "/tmp/v/lftools/bin/activate" pip install --quiet --upgrade pip case $LFTOOLS_MODE in gerrit) git clone https://gerrit.linuxfoundation.org/infra/releng/lftools.git /tmp/lftools pushd /tmp/lftools git fetch origin "$LFTOOLS_REFSPEC" git checkout FETCH_HEAD pip install --quiet --upgrade -r requirements.txt pip install --quiet --upgrade -e . popd ;; git) pip install --quiet --upgrade git+https://gerrit.linuxfoundation.org/infra/releng/lftools.git@"$BRANCH" ;; release) if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then LFTOOLS_VERSION="==$LFTOOLS_VERSION" fi pip install --quiet --upgrade "lftools${LFTOOLS_VERSION}" ;; esac lftools --version # pipdeptree prints out a lot of information because lftools pulls in many # dependencies. Let's only print it if we want to debug. # echo "----> Pip Dependency Tree" # pip install --quiet --upgrade pipdeptree # pipdeptree #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 file contains a list of variables that are generally useful in many # scripts. It is meant to be sourced in other scripts so that the variables can # be called. MAVEN_OPTIONS="$(echo --show-version \ --batch-mode \ -Djenkins \ -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \ -Dmaven.repo.local=/tmp/r \ -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r)" echo "$MAVEN_OPTIONS" #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 builds a Maven project and deploys it into a staging repo which # can be used to deploy elsewhere later eg. Nexus staging / snapshot repos. # DO NOT enable -u because $MAVEN_PARAMS and $MAVEN_OPTIONS could be unbound. # Ensure we fail the job if any steps fail. set -e -o pipefail set +u export MAVEN_OPTS # Disable SC2086 because we want to allow word splitting for $MAVEN_* parameters. # shellcheck disable=SC2086 $MVN clean deploy \ --global-settings "$GLOBAL_SETTINGS_FILE" \ --settings "$SETTINGS_FILE" \ -DaltDeploymentRepository=staging::default::file:"$WORKSPACE"/m2repo \ $MAVEN_PARAMS $MAVEN_OPTIONS #!/bin/bash set +e # DO NOT cause build failure if any of the rm calls fail. rm "$GLOBAL_SETTINGS_FILE" "$SETTINGS_FILE" # In some cases we use the lf-provide-maven-settings macro to produce # a "$HOME/.netrc" file containing credentials. Remove that file here # too if it exists. rm "$HOME/.netrc" # DO NOT fail build if any of the above lines fail. exit 0 false low [FINDBUGS] false false false false false true false **/**.exec **/classes **/src/main/java **/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/** 10 20 50 40 #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## echo "---> sysstat.sh" set +e # DON'T fail build if script fails. OS=$(facter operatingsystem) case "$OS" in Ubuntu) SYSSTAT_PATH="/var/log/sysstat" # Dont run the script when systat is not enabled by default if ! grep --quiet 'ENABLED="true"' "/etc/default/sysstat"; then exit 0 fi ;; CentOS|RedHat) SYSSTAT_PATH="/var/log/sa" ;; *) # nothing to do exit 0 ;; esac SAR_DIR="$WORKSPACE/archives/sar-reports" mkdir -p "$SAR_DIR" cp "$SYSSTAT_PATH/"* "$_" # convert sar data to ascii format while IFS="" read -r s do [ -f "$s" ] && LC_TIME=POSIX sar -A -f "$s" > "$SAR_DIR/sar${s//[!0-9]/}" done < <(find "$SYSSTAT_PATH" -name "sa[0-9]*" || true) # DON'T fail build if script fails. exit 0 jenkins-log-archives-settings SETTINGS_FILE SERVER_ID=logs #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## echo "---> create-netrc.sh" # Ensure we fail the job if any steps fail. set -eu -o pipefail NEXUS_URL="${NEXUSPROXY:-$NEXUS_URL}" CREDENTIAL=$(xmlstarlet sel -N "x=http://maven.apache.org/SETTINGS/1.0.0" \ -t -m "/x:settings/x:servers/x:server[x:id='${SERVER_ID}']" \ -v x:username -o ":" -v x:password \ "$SETTINGS_FILE") machine=$(echo "$NEXUS_URL" | awk -F/ '{print $3}') user=$(echo "$CREDENTIAL" | cut -f1 -d:) pass=$(echo "$CREDENTIAL" | cut -f2 -d:) echo "machine ${machine%:*} login $user password $pass" > ~/.netrc #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## echo "---> lftools-install.sh" # Script to install lftools via a version passed in via lf-infra-parameters # # Required parameters: # # LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be # set to a strict version number like '1.2.3' or using # PEP-440 definitions. # # Examples: # <1.0.0 # >=1.0.0,<2.0.0 # # By default a released version of lftools should always be used. # The purpose of the 2 variables below is so that lftools devs can test # unreleased versions of lftools. There are 2 methods to install a dev version # of lftools: # # 1) gerrit patch: Used to test a patch that has not yet been merged. # To do this set something like this: # LFTOOLS_MODE=gerrit # LFTOOLS_REFSPEC=refs/changes/96/5296/7 # # 2) git branch: Used to install an lftools version from a specific branch. # To use this set the variables as follows: # LFTOOLS_MODE=git # LFTOOLS_REFSPEC=master # # 3) release : The intended use case and default setting. # Set LFTOOLS_MODE=release, in this case LFTOOLS_REFSPEC is unused. LFTOOLS_MODE=release # release | git | gerrit LFTOOLS_REFSPEC=master # Ensure we fail the job if any steps fail. # DO NOT set -u as virtualenv's activate script has unbound variables set -e -o pipefail virtualenv --quiet "/tmp/v/lftools" # shellcheck source=/tmp/v/lftools/bin/activate disable=SC1091 source "/tmp/v/lftools/bin/activate" pip install --quiet --upgrade pip case $LFTOOLS_MODE in gerrit) git clone https://gerrit.linuxfoundation.org/infra/releng/lftools.git /tmp/lftools pushd /tmp/lftools git fetch origin "$LFTOOLS_REFSPEC" git checkout FETCH_HEAD pip install --quiet --upgrade -r requirements.txt pip install --quiet --upgrade -e . popd ;; git) pip install --quiet --upgrade git+https://gerrit.linuxfoundation.org/infra/releng/lftools.git@"$BRANCH" ;; release) if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then LFTOOLS_VERSION="==$LFTOOLS_VERSION" fi pip install --quiet --upgrade "lftools${LFTOOLS_VERSION}" ;; esac lftools --version # pipdeptree prints out a lot of information because lftools pulls in many # dependencies. Let's only print it if we want to debug. # echo "----> Pip Dependency Tree" # pip install --quiet --upgrade pipdeptree # pipdeptree #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## echo "---> logs-deploy.sh" # Ensure we fail the job if any steps fail. set -eu -o pipefail set -x # Trace commands for this script to make debugging easier. ARCHIVE_ARTIFACTS="${ARCHIVE_ARTIFACTS:-}" LOGS_SERVER="${LOGS_SERVER:-None}" if [ "${LOGS_SERVER}" == 'None' ] then set +x # Disable trace since we no longer need it echo "WARNING: Logging server not set" else NEXUS_URL="${NEXUSPROXY:-$NEXUS_URL}" NEXUS_PATH="${SILO}/${JENKINS_HOSTNAME}/${JOB_NAME}/${BUILD_NUMBER}" BUILD_URL="${BUILD_URL}" lftools deploy archives -p "$ARCHIVE_ARTIFACTS" "$NEXUS_URL" "$NEXUS_PATH" "$WORKSPACE" lftools deploy logs "$NEXUS_URL" "$NEXUS_PATH" "$BUILD_URL" set +x # Disable trace since we no longer need it. echo "Build logs: <a href=\"$LOGS_SERVER/$NEXUS_PATH\">$LOGS_SERVER/$NEXUS_PATH</a>" fi #!/bin/bash # SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 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 ############################################################################## # Clear log credential files rm "$SETTINGS_FILE" rm ~/.netrc ^Build logs: .* false false false **/*.jenkins-trigger EXCLUDE false false true true true true true true 60 BUILD_TIMEOUT true false 0 3 absolute test-credential npmrc $HOME/.npmrc