---
+# PROJECT DEFINITIONS
+#
+# Please keep projects grouped in this order:
+# vpp-x86_64, vpp-aarch64, vpp-csit
+#
+# NOTES:
+# - The 'branch-head-refspec' attribute is used for sandbox testing.
+# Use the get_gerrit_refspec() bash function in
+# .../ci-management/docker/scripts/lib_common.sh
+# to query gerrit for the refspec of HEAD in a branch.
+# TODO: see if there is a refspec that works without requiring
+# use of get_gerrit_refspec and hand entering the result
+# in the WebUI 'Build With Parameters' gerrit refspec field.
+# - Use the following to import get_gerrit_refspec into a bash shell
+# from the ci-management directory:
+# $ eval "$(grep -A12 get_gerrit ./docker/scripts/lib_common.sh)"
+# [end] NOTES
+
+# VPP-CHECKSTYLE-X86_64 PROJECT
- project:
- name: vpp
+ name: vpp-checkstyle-x86_64
jobs:
- - 'vpp-verify-{stream}-{os}'
- - 'vpp-merge-{stream}-{os}'
-
+ - 'vpp-checkstyle-verify-{stream}-{executor-arch}'
project: 'vpp'
- os:
- - ubuntu1604:
- repo-os-part: 'ubuntu.xenial.main'
- - centos7:
- repo-os-part: 'centos7'
-
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
- - '1901':
- branch: 'stable/1901'
- repo-stream-part: 'stable.1901'
- - '1904':
- branch: 'stable/1904'
- repo-stream-part: 'stable.1904'
+ branch-head-refspec: ''
- '1908':
branch: 'stable/1908'
repo-stream-part: 'stable.1908'
-
+ branch-head-refspec: ''
+ - '2001':
+ branch: 'stable/2001'
+ repo-stream-part: 'stable.2001'
+ branch-head-refspec: ''
+ - '2005':
+ branch: 'stable/2005'
+ repo-stream-part: 'stable.2005'
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
+ os: 'ubuntu1804'
+ executor-arch: 'x86_64'
+# [end] VPP-CHECKSTYLE-X86_64 PROJECT
+
+# VPP-X86_64 PROJECT
- project:
- name: vpp-clang
+ name: vpp-x86_64
jobs:
- - 'vpp-verify-{stream}-clang'
- - 'vpp-coverity-{stream}'
-
+ - 'vpp-verify-{stream}-{os}-{executor-arch}'
+ - 'vpp-merge-{stream}-{os}-{executor-arch}'
project: 'vpp'
+ make-parallel-jobs: '4'
+ stream:
+ - master:
+ branch: 'master'
+ repo-stream-part: 'master'
+ branch-head-refspec: ''
+ - '1908':
+ branch: 'stable/1908'
+ repo-stream-part: 'stable.1908'
+ branch-head-refspec: ''
+ - '2001':
+ branch: 'stable/2001'
+ repo-stream-part: 'stable.2001'
+ branch-head-refspec: ''
+ - '2005':
+ branch: 'stable/2005'
+ repo-stream-part: 'stable.2005'
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
os:
- ubuntu1804:
repo-os-part: 'ubuntu.bionic.main'
- centos7:
repo-os-part: 'centos7'
- - opensuse:
- repo-os-part: 'opensuse'
-
+ executor-arch: 'x86_64'
+# [end] VPP-X86_64 PROJECT
+
+# VPP-OS-IN-2009-X86_64 PROJECT
+#
+# This project is used to separate streams which are only
+# supported on the OS in the release in which it was added
+# or later releases.
+#
+# For each 'os-in-XXXX', the stream for the release is
+# added here in addition to the 'vpp-x86_64' project.
+# Each subsequent release is also added to both.
+#
+# When all of the streams older than the 'os-in-XXXX" have
+# been removed from the 'vpp-x86_64' project, then the OSes
+# in this project get moved to the 'vpp-x86_64' project and
+# this project gets deleted or commented out if it is only
+# 'os-in-XXXX' project.
+#
+- project:
+ name: vpp-os-in-2009-x86_64
+ jobs:
+ - 'vpp-verify-{stream}-{os}-{executor-arch}'
+ - 'vpp-merge-{stream}-{os}-{executor-arch}'
+ project: 'vpp'
+ make-parallel-jobs: '4'
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
-
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
+ os:
+ - ubuntu2004:
+ repo-os-part: 'ubuntu.focal.main'
+ executor-arch: 'x86_64'
+# [end] VPP-OS-IN-2009-X86_64 PROJECT
+
+# VPP-DEBUG-X86_64 PROJECT
+#
+# Currently a Non-Voting job due to intermittent failures.
+# Limiting branches to master and 2009, since other branches
+# may not get fixes for the intermittent failures.
+#
- project:
- name: vpp-misc
+ name: vpp-debug-x86_64
jobs:
- - 'vpp-checkstyle-verify-{stream}'
+ - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
project: 'vpp'
+ make-parallel-jobs: '4'
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
- - '1901':
- branch: 'stable/1901'
- repo-stream-part: 'stable.1901'
- - '1904':
- branch: 'stable/1904'
- repo-stream-part: 'stable.1904'
- - '1908':
- branch: 'stable/1908'
- repo-stream-part: 'stable.1908'
- os: ubuntu1604
-
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
+ os:
+ - ubuntu1804:
+ repo-os-part: 'ubuntu.bionic.main'
+ executor-arch: 'x86_64'
+# [end] VPP-DEBUG-X86_64 PROJECT
+
+# VPP-BETA-X86_64 PROJECT
+#
+# Beta jobs are experimental jobs for testing new OS versions on master.
+#
+# They are only manually triggered. Either using the Jenkins WebUI
+# 'Build with Parameters' to run a single job or adding 'vpp-beta-verify'
+# or 'vpp-beta-merge' as a comment to run all beta verify or merge jobs.
+#
+# Once testing is complete, the os is moved to the current
+# 'vpp-os-in-XXXX-x86_64' project. If no OSes are being
+# tested then this project should be commented out.
+#
- project:
- name: vpp-perpatch
+ name: vpp-beta-x86_64
jobs:
- - 'vpp-csit-verify-device-{stream}-{device-node-arch}'
- - 'vpp-csit-verify-perf-{stream}-{node-arch}'
+ - 'vpp-beta-verify-{stream}-{os}-{executor-arch}':
+ comment-trigger-value: 'vpp-beta-verify'
+ - 'vpp-beta-merge-{stream}-{os}-{executor-arch}':
+ comment-trigger-value: 'vpp-beta-merge'
project: 'vpp'
- executor: 'vpp-csit-device'
- skip-vote: 'true'
- trigger: 'gerrit-trigger-csit-devicetest-full'
+ make-parallel-jobs: '4'
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
- - '1904':
- branch: 'stable/1904'
- repo-stream-part: 'stable.1904'
- - '1908':
- branch: 'stable/1908'
- repo-stream-part: 'stable.1908'
- os: ubuntu1804
- device-node-arch:
- - 1n-skx
- - 1n-tx2:
- executor: 'vpp-csit-arm-ubuntu18'
- trigger: 'gerrit-trigger-csit-devicetest-manual'
- node-arch:
- - 2n-skx
- - 3n-skx
- - 3n-hsw
- exclude:
- - stream: '1904'
- os: 'ubuntu1804'
- device-node-arch: '1n-tx2'
+ branch-head-refspec: ''
+ os:
+ - centos8:
+ repo-os-part: 'centos8'
+ - debian9:
+ repo-os-part: 'stretch'
+ - debian10:
+ repo-os-part: 'buster'
+ executor-arch: x86_64
+# [end] VPP-BETA-X86_64 PROJECT
+
+# VPP-GCC-X86_64 PROJECT
+- project:
+ name: vpp-gcc-x86_64
+ jobs:
+ - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
+ project: 'vpp'
+ executor-arch: 'x86_64'
+ os:
+ - ubuntu2004:
+ repo-os-part: 'ubuntu.focal.main'
+ stream:
+ - master:
+ branch: 'master'
+ repo-stream-part: 'master'
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+# [end] VPP-GCC-X86_64 PROJECT
+# VPP-AARCH64 PROJECT
- project:
- name: vpp-master-only
+ name: vpp-aarch64
jobs:
- - 'vpp-beta-verify-{stream}-{os}'
- - 'vpp-beta-merge-{stream}-{os}'
+ - 'vpp-verify-{stream}-{os}-{executor-arch}'
+ - 'vpp-merge-{stream}-{os}-{executor-arch}'
project: 'vpp'
+ make-parallel-jobs: '16'
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
- - '1901':
- branch: 'stable/1901'
- repo-stream-part: 'stable.1901'
- - '1904':
- branch: 'stable/1904'
- repo-stream-part: 'stable.1904'
+ branch-head-refspec: ''
- '1908':
branch: 'stable/1908'
repo-stream-part: 'stable.1908'
+ branch-head-refspec: ''
+ - '2001':
+ branch: 'stable/2001'
+ repo-stream-part: 'stable.2001'
+ branch-head-refspec: ''
+ - '2005':
+ branch: 'stable/2005'
+ repo-stream-part: 'stable.2005'
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
os:
- ubuntu1804:
- repo-os-part: 'ubuntu.bionic.main'
+ repo-os-part: 'ubuntu-arm.bionic.main'
+ executor-arch: 'aarch64'
+# [end] VPP-AARCH64 PROJECT
+
+# VPP-OS-IN-2009-AARCH64 PROJECT
+#
+# This project is used to separate streams which are only
+# supported on the OS in the release in which it was added
+# or later releases.
+#
+# For each 'os-in-XXXX', the stream for the release is
+# added here in addition to the 'vpp-aarch64' project.
+# Each subsequent release is also added to both.
+#
+# When all of the streams older than the 'os-in-XXXX" have
+# been removed from the 'vpp-aarch64' project, then the OSes
+# in this project get moved to the 'vpp-aarch64' project and
+# this project gets deleted or commented out if it is only
+# 'os-in-XXXX' project.
+#
+- project:
+ name: vpp-os-in-2009-aarch64
+ jobs:
+ - 'vpp-verify-{stream}-{os}-{executor-arch}'
+ - 'vpp-merge-{stream}-{os}-{executor-arch}'
+ project: 'vpp'
+ make-parallel-jobs: '16'
+ stream:
+ - master:
+ branch: 'master'
+ repo-stream-part: 'master'
+ branch-head-refspec: ''
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ branch-head-refspec: ''
+ os:
+ - ubuntu2004:
+ repo-os-part: 'ubuntu.focal.main'
+ executor-arch: 'aarch64'
+# [end] VPP-OS-IN-2009-AARCH64 PROJECT
+
+# VPP-BETA-AARCH64 PROJECT
+#
+# Beta jobs are experimental jobs for testing new OS versions on master.
+#
+# They are only manually triggered. Either using the Jenkins WebUI
+# 'Build with Parameters' to run a single job or adding 'vpp-beta-verify'
+# or 'vpp-beta-merge' as a comment to run all beta verify or merge jobs.
+#
+# Once testing is complete, the os is moved to the current
+# 'vpp-os-in-XXXX-aarch64' project. If no OSes are being
+# tested then this project should be commented out.
+#
+- project:
+ name: vpp-beta-aarch64
+ jobs:
+ - 'vpp-beta-verify-{stream}-{os}-{executor-arch}':
+ comment-trigger-value: 'beta-verify'
+ - 'vpp-beta-merge-{stream}-{os}-{executor-arch}':
+ comment-trigger-value: 'beta-merge'
+ project: 'vpp'
+ make-parallel-jobs: '16'
+ stream:
+ - master:
+ branch: 'master'
+ repo-stream-part: 'master'
+ branch-head-refspec: ''
+ os:
+ - centos8:
+ repo-os-part: 'centos8'
+ executor-arch: aarch64
+# [end] VPP-BETA-AARCH64 PROJECT
+
+# VPP-CSIT-PERPATCH PROJECT
- project:
- name: vpp-arm
+ name: vpp-csit-perpatch
jobs:
- - 'vpp-arm-verify-{stream}-{os}'
- - 'vpp-arm-merge-{stream}-{os}'
+ - 'vpp-csit-verify-device-{stream}-{device-node-arch}':
+ make-parallel-jobs: '32'
+ - 'vpp-csit-verify-perf-{stream}-{node-arch}'
project: 'vpp'
+ os: ubuntu1804
+ device-executor: 'vpp-csit-device'
+ executor: '{os}-us'
+ skip-vote: 'false'
+ trigger: 'gerrit-trigger-vpp-csit-devicetest-full'
stream:
- master:
branch: 'master'
repo-stream-part: 'master'
- - '1901':
- branch: 'stable/1901'
- repo-stream-part: 'stable.1901'
- - '1904':
- branch: 'stable/1904'
- repo-stream-part: 'stable.1904'
- '1908':
branch: 'stable/1908'
repo-stream-part: 'stable.1908'
- os:
- - ubuntu1804:
- repo-os-part: 'ubuntu-arm.bionic.main'
-
-# TODO: Merge with (e.g.) vpp-perpatch or similar,
-# when number of stable branches supported matches.
+ - '2001':
+ branch: 'stable/2001'
+ repo-stream-part: 'stable.2001'
+ - '2005':
+ branch: 'stable/2005'
+ repo-stream-part: 'stable.2005'
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
+ device-node-arch:
+ - 1n-skx
+ - 1n-tx2:
+ device-executor: 'vpp-csit-arm-ubuntu18'
+ trigger: 'gerrit-trigger-vpp-csit-devicetest-manual'
+ node-arch:
+ - 2n-clx
+ - 2n-skx
+ - 2n-zn2
+ - 3n-skx
+ - 3n-hsw
+ - 2n-dnv
+ - 3n-dnv
+ - 3n-tsh:
+ executor: 'ubuntu1804arm-s'
+ make-parallel-jobs: '16'
+# [end] VPP-CSIT-PERPATCH PROJECT
+
+# VPP-CSIT-API-CRC PROJECT
+#
+# Only master and LTS branches are supported.
+#
- project:
- name: vpp-api-crc
+ name: vpp-csit-api-crc
jobs:
- 'vpp-csit-verify-api-crc-{stream}'
project: 'vpp'
executor: 'vpp-csit-device'
skip-vote: 'false'
stream:
- # TODO: Add stable/1908 when it is created.
+ - '1908':
+ branch: 'stable/1908'
+ repo-stream-part: 'stable.1908'
+ - '2009':
+ branch: 'stable/2009'
+ repo-stream-part: 'stable.2009'
- master:
branch: 'master'
os: ubuntu1804
+# [end] VPP-CSIT-API-CRC PROJECT
+# LF RELENG VPP PROJECTS
- project:
name: vpp-info
project-name: vpp
jobs:
- gerrit-info-yaml-verify
- build-node: centos7-builder-4c-4g
+ build-node: centos7-builder-2c-2g
project: vpp
branch: master
views:
- project-view
project-name: vpp
+# [end] LF RELENG VPP PROJECTS
+# [end] PROJECT DEFINITIONS
+# JOB TEMPLATE DEFINITIONS
+#
+# Please keep job templates in the same order as they are referenced
+# in the project definitions above.
+
+# VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
- job-template:
- name: 'vpp-beta-verify-{stream}-{os}'
+ name: 'vpp-checkstyle-verify-{stream}-{executor-arch}'
project-type: freestyle
- node: '{os}-us'
+ node: 'builder-{os}-prod-{executor-arch}'
concurrent: true
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- **/tmp/vpp-failed-unittests/*/* **/core
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
-
- triggers:
- - gerrit-trigger-checkstyle:
- name: '{project}'
- branch: '{branch}'
+ archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
build-discarder:
daysToKeep: '{build-days-to-keep}'
- numToKeep: 100
+ numToKeep: '{build-num-to-keep}'
artifactDaysToKeep: '{build-artifact-days-to-keep}'
artifactNumToKeep: '{build-artifact-num-to-keep}'
- os-parameter:
os: '{os}'
- repo-name-parameter:
- repo-name: '{repo-stream-part}.{repo-os-part}'
- - stream-parameter:
- stream: '{stream}'
- - string:
- name: ARCHIVE_ARTIFACTS
- default: '{archive-artifacts}'
- description: Artifacts to archive to the logs server.
+ repo-name: '{repo-stream-part}.ubuntu.bionic.main'
+ - gerrit-refspec-parameter:
+ refspec: '{branch-head-refspec}'
scm:
- gerrit-trigger-scm:
wrappers:
- fdio-infra-wrappers:
- build-timeout: '75'
+ build-timeout: '{build-timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: VppApiCompatNotify
+ variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
+
+ triggers:
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'true'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'checkstylecheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'docsonly'
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ # Following two are to cover missing functions of drafts
+ # going to review status
+ - comment-added-contains-event:
+ comment-contains-value: 'runtest'
+ - comment-added-contains-event:
+ comment-contains-value: 'This change is ready for review'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: REG_EXP
+ pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
+ forbidden-file-paths:
+ - compare-type: REG_EXP
+ pattern: .*docs\/.*
+ - compare-type: REG_EXP
+ pattern: .*extras\/emacs\/.*
+ disable-strict-forbidden-file-verification: 'true'
+ override-votes: true
+ gerrit-build-notbuilt-verified-value: 0
+ gerrit-build-successful-verified-value: 1
+ # yamllint disable-line rule:line-length
+ notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
+ # yamllint disable-line rule:line-length
+ failed-message: 'Checkstyle failed. No further verify jobs will be started.'
+ successful-message: 'checkstyle_success'
+ skip-vote:
+ successful: true
+ failed: false
+ unstable: false
+ notbuilt: false
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/vpp/checkstyle.sh
- shell:
!include-raw-escape:
- - ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-build.sh
+ - ../scripts/vpp/test-checkstyle.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/vpp/api-checkstyle.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/vpp/commitmsg.sh
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
- - naginator:
- rerun-unstable-builds: false
- max-failed-builds: 1
- fixed-delay: 90
+# [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
+# VPP-VERIFY JOB TEMPLATE
- job-template:
- name: 'vpp-beta-merge-{stream}-{os}'
+ name: 'vpp-verify-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: '{os}-us'
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
+ node: 'builder-{os}-prod-{executor-arch}'
+ concurrent: true
+ archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
build-discarder:
daysToKeep: '{build-days-to-keep}'
branch: '{branch}'
- os-parameter:
os: '{os}'
- - maven-project-parameter:
- maven: 'mvn33-new'
- - maven-exec:
- maven-version: 'mvn33-new'
- - stream-parameter:
- stream: '{stream}'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
+ - stream-parameter:
+ stream: '{stream}'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter:
+ refspec: '{branch-head-refspec}'
scm:
- gerrit-trigger-scm:
credentials-id: 'jenkins-gerrit-credentials'
- refspec: ''
- choosing-strategy: 'default'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
wrappers:
- fdio-infra-wrappers:
build-timeout: 120
triggers:
- - gerrit-trigger-patch-merged:
+ - gerrit-trigger-checkstyle:
name: '{project}'
branch: '{branch}'
builders:
- - config-file-provider:
- files:
- - file-id: '.packagecloud'
- target: '/root'
- - config-file-provider:
- files:
- - file-id: 'packagecloud_api'
- target: '/root'
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-build.sh
- - provide-maven-settings:
- settings-file: 'vpp-settings'
- global-settings-file: 'global-settings'
- shell:
!include-raw-escape:
- - ../scripts/packagecloud_push.sh
+ - ../scripts/vpp/build.sh
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
+# [end] VPP-VERIFY JOB TEMPLATE
+# VPP-DEBUG-VERIFY JOB TEMPLATE
- job-template:
- name: 'vpp-arm-verify-{stream}-{os}'
+ name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: '{os}arm-us'
+ node: 'builder-{os}-prod-{executor-arch}'
concurrent: true
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
+ archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
build-discarder:
daysToKeep: '{build-days-to-keep}'
- numToKeep: 100
+ numToKeep: '{build-num-to-keep}'
artifactDaysToKeep: '{build-artifact-days-to-keep}'
artifactNumToKeep: '{build-artifact-num-to-keep}'
- gerrit-parameter:
branch: '{branch}'
- os-parameter:
- os: '{os}'
+ os: 'ubuntu1804'
- repo-name-parameter:
- repo-name: '{repo-stream-part}.{repo-os-part}'
+ repo-name: '{repo-stream-part}.ubuntu.bionic.main'
- stream-parameter:
stream: '{stream}'
- - string:
- name: ARCHIVE_ARTIFACTS
- default: '{archive-artifacts}'
- description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter:
+ refspec: '{branch-head-refspec}'
scm:
- gerrit-trigger-scm:
wrappers:
- fdio-infra-wrappers:
- build-timeout: 120
+ build-timeout: '{build-timeout}'
triggers:
- - gerrit-trigger-checkstyle:
+ # TODO: Ensure all supported jobs pass reliably before
+ # enabling voting.
+ - gerrit-trigger-checkstyle-nonvoting:
name: '{project}'
branch: '{branch}'
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_arm_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-parallel-vars.sh
- - include-raw-vpp-arm-build.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/vpp/debug-build.sh
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
- archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
- - naginator:
- rerun-unstable-builds: false
- max-failed-builds: 1
- fixed-delay: 90
+# [end] VPP-DEBUG-VERIFY JOB TEMPLATE
+# VPP-MERGE JOB TEMPLATE
- job-template:
- name: 'vpp-arm-merge-{stream}-{os}'
+ name: 'vpp-merge-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: '{os}arm-m'
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
+ node: 'builder-{os}-prod-{executor-arch}'
build-discarder:
daysToKeep: '{build-days-to-keep}'
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
- file-id: 'packagecloud_api'
target: '/root'
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_arm_test.sh
+ !include-raw-escape:
+ - ../scripts/vpp/checkstyle.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-parallel-vars.sh
- - include-raw-vpp-arm-build-no-test.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/vpp/build.sh
- provide-maven-settings:
settings-file: 'vpp-settings'
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
+# [end] VPP-MERGE JOB TEMPLATE
+# VPP-BETA-VERIFY JOB TEMPLATE
- job-template:
- name: 'vpp-checkstyle-verify-{stream}'
+ name: 'vpp-beta-verify-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: '{os}-us'
+ node: 'builder-{os}-prod-{executor-arch}'
concurrent: true
-
- build-discarder:
- 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}'
- - os-parameter:
- os: '{os}'
- - repo-name-parameter:
- repo-name: '{repo-stream-part}.ubuntu.xenial.main'
-
- scm:
- - gerrit-trigger-scm:
- credentials-id: 'jenkins-gerrit-credentials'
- refspec: '$GERRIT_REFSPEC'
- choosing-strategy: 'gerrit'
-
- wrappers:
- - fdio-infra-wrappers:
- build-timeout: '{build-timeout}'
-
- triggers:
- - gerrit:
- server-name: 'Primary'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: 'true'
- exclude-trivial-rebase: 'false'
- exclude-no-code-change: 'true'
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: 'checkstylecheck'
- - comment-added-contains-event:
- comment-contains-value: 'docsonly'
- - comment-added-contains-event:
- comment-contains-value: 'recheck'
- - comment-added-contains-event:
- comment-contains-value: 'reverify'
- # Following two are to cover missing functions of drafts going to review status
- - comment-added-contains-event:
- comment-contains-value: 'runtest'
- - comment-added-contains-event:
- comment-contains-value: 'This change is ready for review'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: REG_EXP
- pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
- forbidden-file-paths:
- - compare-type: REG_EXP
- pattern: .*docs\/.*
- - compare-type: REG_EXP
- pattern: .*extras\/emacs\/.*
- disable-strict-forbidden-file-verification: 'true'
- override-votes: true
- gerrit-build-notbuilt-verified-value: 0
- gerrit-build-successful-verified-value: 1
- # yamllint disable-line rule:line-length
- notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
- # yamllint disable-line rule:line-length
- failed-message: 'Checkstyle failed. No further verify jobs will be started.'
- successful-message: 'checkstyle_success'
- skip-vote:
- successful: true
- failed: false
- unstable: false
- notbuilt: false
-
- builders:
- - shell:
- !include-raw-escape: include-raw-vpp-checkstyle.sh
- - shell:
- !include-raw-escape: include-raw-vpp-test-checkstyle.sh
- - shell:
- !include-raw-escape: include-raw-vpp-commitmsg.sh
-
- publishers:
- - fdio-infra-shiplogs:
- maven-version: 'mvn36'
- archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
- - naginator:
- rerun-unstable-builds: true
- max-failed-builds: 1
- fixed-delay: 90
-
-- job-template:
- name: 'vpp-verify-{stream}-{os}'
-
- project-type: freestyle
- node: '{os}-us'
- concurrent: true
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
+ archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
build-discarder:
daysToKeep: '{build-days-to-keep}'
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter:
+ refspec: '{branch-head-refspec}'
scm:
- gerrit-trigger-scm:
build-timeout: 120
triggers:
- - gerrit-trigger-checkstyle:
+ - gerrit-trigger-manually-triggered:
+ comment-trigger-value: '{comment-trigger-value}'
name: '{project}'
branch: '{branch}'
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-build.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/vpp/build.sh
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
- archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
- - naginator:
- rerun-unstable-builds: false
- max-failed-builds: 2
- fixed-delay: 90
+# [end] VPP-BETA-VERIFY JOB TEMPLATE
+# VPP-BETA-MERGE JOB TEMPLATE
- job-template:
- name: 'vpp-verify-{stream}-clang'
+ name: 'vpp-beta-merge-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: 'ubuntu1804-us'
- concurrent: true
+ node: 'builder-{os}-prod-{executor-arch}'
build-discarder:
daysToKeep: '{build-days-to-keep}'
- numToKeep: '{build-num-to-keep}'
+ numToKeep: 100
artifactDaysToKeep: '{build-artifact-days-to-keep}'
artifactNumToKeep: '{build-artifact-num-to-keep}'
- gerrit-parameter:
branch: '{branch}'
- os-parameter:
- os: 'ubuntu1604'
- - repo-name-parameter:
- repo-name: '{repo-stream-part}.ubuntu.bionic.main'
+ os: '{os}'
+ - maven-project-parameter:
+ maven: 'mvn33-new'
+ - maven-exec:
+ maven-version: 'mvn33-new'
- stream-parameter:
stream: '{stream}'
+ - repo-name-parameter:
+ repo-name: '{repo-stream-part}.{repo-os-part}'
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
credentials-id: 'jenkins-gerrit-credentials'
- refspec: '$GERRIT_REFSPEC'
- choosing-strategy: 'gerrit'
+ refspec: ''
+ choosing-strategy: 'default'
wrappers:
- fdio-infra-wrappers:
build-timeout: '{build-timeout}'
triggers:
- - gerrit-trigger-checkstyle:
+ - gerrit-trigger-manually-triggered:
+ comment-trigger-value: '{comment-trigger-value}'
name: '{project}'
branch: '{branch}'
builders:
+ - config-file-provider:
+ files:
+ - file-id: '.packagecloud'
+ target: '/root'
+ - config-file-provider:
+ files:
+ - file-id: 'packagecloud_api'
+ target: '/root'
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/vpp/checkstyle.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-clang-build.sh
-
- publishers:
- - fdio-infra-shiplogs:
- maven-version: 'mvn36'
- archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
- - naginator:
- rerun-unstable-builds: false
- max-failed-builds: 1
- fixed-delay: 90
-
-- job-template:
- name: 'vpp-coverity-{stream}'
-
- project-type: freestyle
- node: 'ubuntu1804-us'
- concurrent: true
-
- build-discarder:
- 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}'
- - os-parameter:
- os: 'ubuntu1804'
- - repo-name-parameter:
- repo-name: '{repo-stream-part}.ubuntu.bionic.main'
- - stream-parameter:
- stream: '{stream}'
-
- scm:
- - gerrit-trigger-scm:
- credentials-id: 'jenkins-gerrit-credentials'
- refspec: ''
- choosing-strategy: 'gerrit'
-
- wrappers:
- - fdio-infra-wrappers:
- build-timeout: '{build-timeout}'
-
- triggers:
- - timed: '0 14 * * *'
-
- builders:
- shell:
- command: !include-raw-escape: include-raw-vpp-coverity.sh
- unstable-return: 42
+ !include-raw-escape:
+ - ../scripts/vpp/build.sh
+ - provide-maven-settings:
+ settings-file: 'vpp-settings'
+ global-settings-file: 'global-settings'
+ - shell:
+ !include-raw-escape:
+ - ../scripts/packagecloud_push.sh
publishers:
- - email-ext:
- # yamllint disable-line rule:line-length
- recipients: 'ejk@cisco.com'
- reply-to: ''
- content-type: 'text'
- subject: 'Coverity run passing as of $BUILD_TIMESTAMP'
- # yamllint disable-line rule:line-length
- body: |
- Coverity run passing.
-
- ${{FILE,path="output.txt"}}
- failure: false
- success: true
- - email-ext:
- # yamllint disable-line rule:line-length
- recipients: 'ejk@cisco.com'
- reply-to: ''
- content-type: 'text'
- subject: 'Coverity run UNSTABLE as of $BUILD_TIMESTAMP'
- # yamllint disable-line rule:line-length
- body: |
- Coverity run UNSTABLE.
-
- Something went wrong with daily scan.
- failure: false
- unstable: true
- - email-ext:
- # yamllint disable-line rule:line-length
- recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
- reply-to: ''
- content-type: 'text'
- subject: 'Coverity run FAILED as of $BUILD_TIMESTAMP'
- # yamllint disable-line rule:line-length
- body: |
- Coverity run failed today.
-
- ${{FILE,path="output.txt"}}
- failure: true
- - email-ext:
- # yamllint disable-line rule:line-length
- recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
- reply-to: ''
- content-type: 'text'
- subject: 'Coverity run as of $BUILD_TIMESTAMP'
- # yamllint disable-line rule:line-length
- body: |
- Coverity run fixed today.
-
- ${{FILE,path="output.txt"}}
- failure: false
- fixed: true
- fdio-infra-shiplogs:
maven-version: 'mvn36'
- archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
+# [end] VPP-BETA-MERGE JOB TEMPLATE
+# VPP-GCC-VERIFY JOB TEMPLATE
- job-template:
- name: 'vpp-merge-{stream}-{os}'
+ name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
project-type: freestyle
- node: '{os}-us'
- archive-artifacts: >
- **/build-root/*.rpm
- **/build-root/*.deb
- **/dpdk/*.rpm
- **/dpdk/*.deb
- allow-empty: 'true'
- fingerprint: false
- only-if-success: true
- default-excludes: false
+ node: 'builder-{os}-prod-{executor-arch}'
+ concurrent: true
+ archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
build-discarder:
daysToKeep: '{build-days-to-keep}'
branch: '{branch}'
- os-parameter:
os: '{os}'
- - maven-project-parameter:
- maven: 'mvn33-new'
- - maven-exec:
- maven-version: 'mvn33-new'
- - stream-parameter:
- stream: '{stream}'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
+ - stream-parameter:
+ stream: '{stream}'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
credentials-id: 'jenkins-gerrit-credentials'
- refspec: ''
- choosing-strategy: 'default'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
wrappers:
- fdio-infra-wrappers:
- build-timeout: '{build-timeout}'
+ build-timeout: 120
triggers:
- - gerrit-trigger-patch-merged:
+ - gerrit-trigger-checkstyle:
name: '{project}'
branch: '{branch}'
builders:
- - config-file-provider:
- files:
- - file-id: '.packagecloud'
- target: '/root'
- - config-file-provider:
- files:
- - file-id: 'packagecloud_api'
- target: '/root'
- shell:
- !include-raw-escape: include-raw-vpp-checkstyle.sh
- - shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- - include-raw-vpp-build.sh
- - provide-maven-settings:
- settings-file: 'vpp-settings'
- global-settings-file: 'global-settings'
- shell:
!include-raw-escape:
- - ../scripts/packagecloud_push.sh
+ - ../scripts/vpp/gcc-build.sh
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
- - naginator:
- rerun-unstable-builds: false
- max-failed-builds: 1
- fixed-delay: 90
+# [end] VPP-GCC-VERIFY JOB TEMPLATE
+# VPP-CSIT-VERIFY-DEVICE JOB TEMPLATE
- job-template:
name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
+ description: |
+ <ul>
+ <li>executor
+ <ul>
+ <li>{device-executor}
+ </ul>
+ </ul>
project-type: freestyle
- node: '{executor}'
+ node: '{device-executor}'
concurrent: true
archive-artifacts: '**/csit_current/**/*.*'
latest-only: false
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
- !include-raw-escape: ../scripts/setup_vpp_dpdk_dev_env.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_dpdk_dev_env.sh
- shell:
!include-raw-escape:
- - include-raw-vpp-parallel-vars.sh
- - include-raw-vpp-csit-device.sh
+ - ../scripts/vpp/csit-device.sh
publishers:
- robot-report:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
+# [end] VPP-CSIT-VERIFY-DEVICE JOB TEMPLATE
+# VPP-CSIT-VERIFY-PERF JOB TEMPLATE
- job-template:
name: 'vpp-csit-verify-perf-{stream}-{node-arch}'
+ description: |
+ <ul>
+ <li>executor
+ <ul>
+ <li>{executor}
+ </ul>
+ <li>Objective
+ Contrary to csit-vpp job, this also measures the parent performance,
+ and fails if performance regression is detected.
+ See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
+ </ul>
project-type: freestyle
- node: '{os}-us'
+ node: '{executor}'
concurrent: true
archive-artifacts: >
**/csit_current/**/*.*
- gerrit-event-type-parameter
- gerrit-event-comment-text-parameter
- gerrit-csit-refspec-parameter
- - string:
- name: CSIT_PERF_TRIAL_DURATION
- default: "10.0"
- description: "Duration of a trial measurement in BMRR tests."
- - string:
- name: CSIT_PERF_TRIAL_MULTIPLICITY
- default: "5"
- description: "Number of subsamples for BMRR tests."
+ - csit-perf-trial-duration-parameter:
+ csit-perf-trial-duration: "10.0"
+ - csit-perf-trial-multiplicity-parameter:
+ csit-perf-trial-multiplicity: "5"
- stream-parameter:
stream: '{stream}'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
triggers:
- gerrit-trigger-csit-perftest:
- name: '{project}'
+ project: '{project}'
branch: '{branch}'
- node-arch: '{node-arch}'
+ trigger-word: 'perftest-{node-arch}'
+ skip-vote: true
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
- !include-raw-escape: ../scripts/setup_vpp_dpdk_dev_env.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_dpdk_dev_env.sh
- shell:
- !include-raw-escape: include-raw-vpp-csit-perf.sh
+ !include-raw-escape:
+ - ../scripts/vpp/csit-perf.sh
publishers:
- robot-report:
output-path: 'csit_current/0/'
- - fdio-infra-shiplogs:
- maven-version: 'mvn36'
+ - lf-infra-publish
+# [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
+# VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
- job-template:
name: 'vpp-csit-verify-api-crc-{stream}'
builders:
- shell:
- !include-raw-escape: ../scripts/setup_vpp_ubuntu_docker_test.sh
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
- !include-raw-escape: check_crc.sh
+ !include-raw-escape:
+ - ../scripts/vpp/check_crc.sh
# TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
publishers:
- fdio-infra-shiplogs:
maven-version: 'mvn36'
+# [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
+# [end] JOB TEMPLATE DEFINITIONS