openjdk8 <!-- Managed by Jenkins Job Builder --> false false false true build-vm false 7 -1 -1 0 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 $GERRIT_REFSPEC $GIT_URL/$PROJECT test-credential refs/heads/$GERRIT_BRANCH false false true false false Default true false false false true false 10 ANT releng/ciman ANT **/master ANT ** false false false false false false false true false false False false recheck: [0-9 ]+ test-server mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes echo "quiet=on" > "$HOME/.wgetrc" --version mvn33 false rm "$HOME/.wgetrc" global-settings GLOBAL_SETTINGS_FILE gerrit-maven-project-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 ############################################################################## # Fetches patches all projects provided by comment trigger # # Takes a list of Gerrit patches and fetches all projects and cherry-pick # patches for projects. The trigger is # 'recheck: SPACE_SEPERATED_LIST_OF_PATCHES' # # NOTE: This script assumes the user will provide the correct dependency order # via the PATCHES list. # Ensure we fail the job if any steps fail. set -eu -o pipefail REPOS_DIR="$WORKSPACE/.repos" PATCHES=($(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'recheck:' | awk -F: '{print $2}')) projects=() for patch in $(echo "${PATCHES[@]}"); do json=$(curl -s "$GERRIT_URL/changes/$patch" | sed -e "s/)]}'//") project=$(echo "$json" | jq -r '.project') branch=$(echo "$json" | jq -r '.branch') if [ ! -d "$REPOS_DIR/$project" ]; then git clone -q --depth 1 -b "$branch" "$GIT_URL/$project" "$REPOS_DIR/$project" # This array will be used later to determine project build order. projects+=("$project") fi pushd "$REPOS_DIR/$project" git remote add gerrit "$GIT_URL/$project" git review --cherrypick="$patch" popd done # This script should be a macro which re-inject's the projects variable back # into the build so a script later on can use it. echo "DEPENDENCY_BUILD_ORDER=${projects[*]}" > "$WORKSPACE/.dependency.properties" $WORKSPACE/.dependency.properties #!/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 ############################################################################## # Builds projects provided via $DEPENDENCY_BUILD_ORDER list # # This runs a `mvn clean install` against all projects provided by a list. This # script is a companion script for the gerrit-fetch-dependencies script which # clones project repos to "$WORKSPACE/.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 PROJECTS=($(echo "$DEPENDENCY_BUILD_ORDER")) REPOS_DIR="$WORKSPACE/.repos" export MAVEN_OPTS for project in "${PROJECTS[@]}"; do pushd "$REPOS_DIR/$project" # Disable SC2086 because we want to allow word splitting for $MAVEN_* parameters. # shellcheck disable=SC2086 $MVN clean install \ -Pq \ -DskipTests=true \ --global-settings "$GLOBAL_SETTINGS_FILE" \ --settings "$SETTINGS_FILE" \ $MAVEN_PARAMS $MAVEN_OPTIONS popd done #!/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