- archive-artifacts:
artifacts: 'job_output/*'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'ci-management-merge-jjb'
jenkins-jobs --version
jenkins-jobs update --recursive --delete-old --workers 4 jjb/
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: ci-management-verify-zuul
max: 250
unstable: 250
pattern: 'pylint.log'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
description: 'CSIT jenkins jobs.'
jobs:
+ - 'csit-dpdk-perf-{stream}-{type}'
- 'csit-vpp-perf-{stream}-{type}'
- 'csit-vpp-functional-{stream}-virl'
- 'csit-vpp-verify-{stream_timed}-weekly'
- robot-report:
output-path: ''
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
+- job-template:
+ name: 'csit-dpdk-perf-{stream}-{type}'
+
+ project-type: freestyle
+ node: ubuntu1604-basebuild-4c-4g
+ concurrent: false
+
+ logrotate:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - type-parameter:
+ type: '{type}'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: 'jenkins-gerrit-credentials'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - fdio-infra-wrappers-non-activity-timeout:
+ build-timeout: 30
+
+ triggers:
+ - gerrit-trigger-manually-triggered:
+ name: '{project}'
+ branch: '{branch}'
+ comment-trigger-value: 'verify-perf-dpdk-{type}'
+
+ builders:
+ - shell:
+ !include-raw-escape: jjb/csit/include-raw-csit-dpdk-perf-hw.sh
+
+ publishers:
+ - archive-artifacts:
+ artifacts: 'report.html, log.html, output.xml, output_perf_data.xml'
+ latest-only: false
+
+ - robot-report:
+ output-path: ''
+
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-vpp-perf-{stream}-{type}'
xpath-type: 'nodeset'
xpath: '//*[@framesize="78" and contains(@tags,"PDR") and @workerthreads="4"]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-vpp-verify-{stream_timed}-weekly'
remote: origin
name: 'refs/heads/{branch-id}-$DATE'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-vpp-verify-{stream_timed}-semiweekly'
- robot-report:
output-path: 'csit/archive'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-vpp-verify-perf-master-nightly-all'
xpath-type: 'nodeset'
xpath: '//*[@framesize="78" and contains(@tags,"PDR") and @workerthreads="4"]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-docs-verify-{stream}'
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'csit-docs-merge-{stream}'
scm:
- gerrit-trigger-scm:
credentials-id: 'jenkins-gerrit-credentials'
- refspec: '$GERRIT_REFSPEC'
- choosing-strategy: 'gerrit'
+ refspec: ''
+ choosing-strategy: 'default'
wrappers:
- fdio-infra-wrappers:
triggers:
- reverse:
- jobs: 'csit-vpp-verify-master-weekly'
+ jobs: 'csit-vpp-verify-{stream}-weekly'
result: 'success'
- gerrit:
+ server-name: 'Primary'
trigger-on:
- comment-added-contains-event:
comment-contains-value: 'run-docs'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
skip-vote:
successful: true
failed: true
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- parameter:
name: test-type-parameter
--- /dev/null
+#!/bin/bash
+
+export TEST_TAG="PERFTEST_${TYPE^^}"
+
+# execute csit bootstrap script if it exists
+if [ ! -e bootstrap-verify-perf-DPDK.sh ]
+then
+ echo 'ERROR: No bootstrap-verify-perf-DPDK.sh found'
+ exit 1
+fi
+
+# make sure that bootstrap-verify-perf.sh is executable
+chmod +x bootstrap-verify-perf-DPDK.sh
+# run the script
+./bootstrap-verify-perf-DPDK.sh *.deb
+
+# vim: ts=4 ts=4 sts=4 et :
!include-raw-escape:
- include-raw-deb_dpdk-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'deb_dpdk-verify-image-{stream}-{os}'
!include-raw-escape:
- include-raw-deb_dpdk-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'deb_dpdk-merge-{stream}-{os}'
- include-raw-deb_dpdk-build.sh
- ../scripts/maven_push_functions.sh
- include-raw-deb_dpdk-pkg-push.sh
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
output-path: '{output-path}'
other-files: ''
+- publisher:
+ name: fdio-infra-shiplogs
+ # To archive things, the job will need to create an "archives" directory in
+ # the workspace and this macro will handle copying the contents of the
+ # archives directory.
+ #
+ # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
+ # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
+ # the archive pattern. This is a space separated list of files to archive.
+ #
+ # Also ensure that the workspace is cleaned up at the end of the build.
+ publishers:
+ - postbuildscript:
+ builders:
+ - shell: !include-raw: include-raw-deploy-archives.sh
+ - maven-target:
+ maven-version: '{maven-version}'
+ pom: '.archives/deploy-archives.xml'
+ goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
+ settings: 'jenkins-log-archives-settings'
+ settings-type: cfp
+ global-settings: 'global-settings'
+ global-settings-type: cfp
+ - description-setter:
+ regexp: '^Build logs: .*'
+ script-only-if-succeeded: false
+ script-only-if-failed: false
+ mark-unstable-if-failed: true
+ - workspace-cleanup:
+ fail-build: false
+
###### BUILDERS
- builder:
name: ci-management-check-unicode
- master:
branch: 'master'
repo-stream-part: 'master'
+ - '1701':
+ branch: 'stable/1701'
+ repo-stream-part: 'stable.1701'
- job-template:
name: 'hc2vpp-verify-{stream}-{os}'
publishers:
- email-notification:
email-prefix: '[hc2vpp]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'hc2vpp-verify-image-{stream}-{os}'
publishers:
- email-notification:
email-prefix: '[hc2vpp]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'hc2vpp-merge-{stream}-{os}'
branch: '{stream}'
- email-notification:
email-prefix: '[hc2vpp]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'hc2vpp-integration-{stream}-{os}'
id: ''
unique-version: true
deploy-unstable: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- '1609':
branch: 'stable/1609'
repo-stream-part: 'stable.1609'
+ - '1701':
+ branch: 'stable/1701'
+ repo-stream-part: 'stable.1701'
- job-template:
name: 'honeycomb-verify-{stream}-{os}'
publishers:
- email-notification:
email-prefix: '[honeycomb]'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'honeycomb-merge-{stream}-{os}'
id: ''
unique-version: true
deploy-unstable: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'honeycomb-benchmark-master'
format: 'csv'
inclusion-flag: 'include-by-string'
exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
- - plot:
- title: 'Infrastructure CFG write benchmark (list-in-container)'
yaxis: 'ops/second'
csv-file-name: 'list-in-container.csv'
format: 'csv'
inclusion-flag: 'include-by-string'
exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
- - plot:
- title: 'Infrastructure CFG write benchmark (complex-list-in-container)'
yaxis: 'ops/second'
csv-file-name: 'complex-list-in-container.csv'
format: 'csv'
inclusion-flag: 'include-by-string'
exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
- - plot:
- title: 'Infrastructure CFG read benchmark'
yaxis: 'ops/second'
csv-file-name: 'operational-read.csv'
format: 'csv'
inclusion-flag: 'include-by-string'
exclude: 'simple-container,list-in-container,complex-list-in-container'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
--- /dev/null
+#!/bin/bash
+
+set +e # Do not affect the build result if some part of archiving fails.
+
+ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
+[ "$LOGS_SERVER" ] || LOGS_SERVER="https://logs.fd.io"
+[ "$LOGS_REPO_URL" ] || LOGS_REPO_URL="https://nexus.fd.io/service/local/repositories/logs"
+
+echo "Build logs: <a href=\"$LOGS_SERVER/$SILO/$ARCHIVES_DIR\">$LOGS_SERVER/$SILO/$ARCHIVES_DIR</a>"
+
+mkdir .archives
+cd .archives/
+
+cat > deploy-archives.xml <<EOF
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>logs</groupId>
+ <artifactId>logs</artifactId>
+ <version>1.0.0</version>
+ <packaging>pom</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>maven-upload-plugin</artifactId>
+ <version>0.0.1</version>
+ <executions>
+ <execution>
+ <id>publish-site</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>upload-file</goal>
+ </goals>
+ <configuration>
+ <serverId>fdioproject-log-archives</serverId>
+ <repositoryUrl>$LOGS_REPO_URL/content-compressed</repositoryUrl>
+ <file>archives.zip</file>
+ <repositoryPath>$SILO</repositoryPath>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
+EOF
+
+mkdir -p $ARCHIVES_DIR
+mkdir -p $WORKSPACE/archives
+if [ ! -z "${{ARCHIVE_ARTIFACTS}}" ]; then
+ pushd $WORKSPACE
+ shopt -s globstar # Enable globstar to copy archives
+ archive_artifacts=$(echo ${{ARCHIVE_ARTIFACTS}})
+ for f in $archive_artifacts; do
+ echo "Archiving $f"
+ mkdir -p $WORKSPACE/archives/$(dirname $f)
+ mv $f $WORKSPACE/archives/$f
+ done
+ shopt -u globstar # Disable globstar once archives are copied
+ popd
+fi
+
+
+# Ignore logging if archives doesn't exist
+mv $WORKSPACE/archives/ $ARCHIVES_DIR > /dev/null 2>&1
+touch $ARCHIVES_DIR/_build-details.txt
+echo "build-url: ${{BUILD_URL}}" >> $ARCHIVES_DIR/_build-details.txt
+env > $ARCHIVES_DIR/_build-enviroment-variables.txt
+
+# capture system info
+touch $ARCHIVES_DIR/_sys-info.txt
+{{
+ echo -e "uname -a:\n `uname -a` \n"
+ echo -e "df -h:\n `df -h` \n"
+ echo -e "free -m:\n `free -m` \n"
+ echo -e "nproc:\n `nproc` \n"
+ echo -e "lscpu:\n `lscpu` \n"
+ echo -e "ip addr:\n `/sbin/ip addr` \n"
+}} 2>&1 | tee -a $ARCHIVES_DIR/_sys-info.txt
+
+# Magic string used to trim console logs at the appropriate level during wget
+echo "-----END_OF_BUILD-----"
+wget -O $ARCHIVES_DIR/console.log ${{BUILD_URL}}consoleText
+wget -O $ARCHIVES_DIR/console-timestamp.log ${{BUILD_URL}}/timestamps?time=HH:mm:ss\&appendLog
+sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console.log
+sed -i '/^.*-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console-timestamp.log
+
+gzip $ARCHIVES_DIR/*.txt $ARCHIVES_DIR/*.log
+# find and gzip any 'text' files
+find $ARCHIVES_DIR -type f -print0 \
+ | xargs -0r file \
+ | egrep -e ':.*text.*' \
+ | cut -d: -f1 \
+ | xargs -d'\n' -r gzip
+
+zip -r archives.zip $JENKINS_HOSTNAME/
+du -sh archives.zip
- include-raw-nsh_sfc-build.sh
- ../scripts/cleanup_vpp_plugin_dev_env.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'nsh_sfc-verify-image-{stream}-{os}'
- ../scripts/setup_vpp_plugin_dev_env.sh
- include-raw-nsh_sfc-build.sh
- ../scripts/cleanup_vpp_plugin_dev_env.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'nsh_sfc-merge-{stream}-{os}'
- include-raw-nsh_sfc-build.sh
- ../scripts/cleanup_vpp_plugin_dev_env.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'nsh_sfc-integration-{stream}-{os}'
- ../scripts/maven_push_functions.sh
- include-raw-nsh_sfc-pkg-push.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'nsh_sfc-verify-docs-{stream}'
- shell:
!include-raw-escape: include-raw-nsh_sfc-docs.sh
-
-
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'nsh_sfc-merge-docs-{stream}'
global-settings-file: 'global-settings'
- shell:
!include-raw-escape: include-raw-nsh_sfc-docs.sh
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
./scripts/prepare-node.sh
./scripts/allow-local-ssh-root.sh
./scripts/ci-beaker.sh {os}
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
!include-raw-escape:
- include-raw-rpm_dpdk-pkg-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'rpm_dpdk-verify-image-{stream}-{os}'
- shell:
!include-raw-escape:
- include-raw-rpm_dpdk-pkg-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'rpm_dpdk-merge-{stream}-{os}'
- include-raw-rpm_dpdk-pkg-build.sh
- include-raw-rpm_dpdk-pkg-push.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- shell:
!include-raw-escape: include-raw-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: '{project}-verify-image-{stream}-{os}'
- shell:
!include-raw-escape: include-raw-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: '{project}-merge-{stream}-{os}'
builders:
- shell:
!include-raw-escape: include-raw-build.sh
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- shell:
!include-raw-escape: include-raw-trex-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'trex-merge-{stream}-{os}'
- shell:
!include-raw-escape: include-raw-trex-build.sh
-
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
fingerprint: false
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'vpp-verify-image-{stream}-{os}'
- shell:
!include-raw-escape: include-raw-vpp-build.sh
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'vpp-merge-{stream}-{os}'
fingerprint: false
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'vpp-csit-verify-virl-{stream}'
- robot-report:
output-path: 'csit'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- job-template:
name: 'vpp-csit-verify-hw-perf-{stream}-{type}'
- robot-report:
output-path: 'csit'
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
- parameter:
name: type-parameter
fingerprint: false
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
- job-template:
name: 'vpp-docs-merge-{stream}'
fingerprint: false
only-if-success: true
default-excludes: false
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
# make sure that we still default to openjdk 7
update-alternatives --set java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
+
+ # disable unattended upgrades & daily updates
+ echo '---> Disabling automatic daily upgrades'
+ apt-get remove unattended-upgrades
+ if [ -f /usr/bin/systemctl ]
+ then
+ systemctl stop apt.systemd.daily
+ systemctl disable apt.systemd.daily
+ else
+ /etc/init.d/unattended-upgrades stop
+ update-rc.d -f unattended-upgrades remove
+ fi
}
all_systems() {