blob: 8ce9254bd060e2695c69c1f47458c671f2fc5009 [file] [log] [blame]
---
- job_boiler_plate: &job_boiler_plate
name: job-boiler-plate
project-type: freestyle
node: '{build-node}'
######################
# Default parameters #
######################
branch: master
submodule-recursive: true
git-url: '$GIT_URL/$GERRIT_PROJECT'
#####################
# Job Configuration #
#####################
properties:
- lf-infra-properties:
project: '{project}'
build-days-to-keep: '{build-days-to-keep}'
#- github:
# url: '{git-url}/{github-org}/{project}'
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
wrappers:
- lf-infra-wrappers:
build-timeout: '{build-timeout}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
- verify_boiler_plate: &verify_boiler_plate
name: verify_boiler_plate
concurrent: true
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
- gerrit:
#server-name: '{gerrit-server-name}'
server-name: 'ONOS Project Gerrit'
#trigger-on: '{obj:gerrit_verify_triggers}'
trigger-on:
- patchset-created-event:
exclude-drafts: true
exclude-trivial-rebase: false
exclude-no-code-change: true
- draft-published-event: true
- comment-added-contains-event:
comment-contains-value: '(?i)^.*recheck$'
projects:
- project-compare-type: PLAIN
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern: '**/{stream}'
#file-paths: '{obj:gerrit_trigger_file_paths}'
- daily_boiler_plate: &daily_boiler_plate
name: daily_boiler_plate
concurrent: true
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
- timed: '@daily'
# FIXME - there is a Slack integration plugin in 2.0.3
publishers:
- raw:
xml: |
<jenkins.plugins.slack.SlackNotifier plugin="slack@2.3">
<baseUrl/>
<teamDomain/>
<authToken/>
<authTokenCredentialId>slack-token</authTokenCredentialId>
<botUser>false</botUser>
<room>build-status</room>
<startNotification>false</startNotification>
<notifySuccess>false</notifySuccess>
<notifyAborted>true</notifyAborted>
<notifyNotBuilt>true</notifyNotBuilt>
<notifyUnstable>true</notifyUnstable>
<notifyRegression>true</notifyRegression>
<notifyFailure>true</notifyFailure>
<notifyBackToNormal>true</notifyBackToNormal>
<notifyRepeatedFailure>false</notifyRepeatedFailure>
<includeTestSummary>false</includeTestSummary>
<includeFailedTests>false</includeFailedTests>
<commitInfoChoice>AUTHORS_AND_TITLES</commitInfoChoice>
<includeCustomMessage>false</includeCustomMessage>
<customMessage/>
</jenkins.plugins.slack.SlackNotifier>
- hourly_boiler_plate_with_slack: &hourly_boiler_plate_with_slack
name: hourly_boiler_plate_with_slack
concurrent: true
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
- timed: '@hourly'
# FIXME - there is a Slack integration plugin in 2.0.3
publishers:
- raw:
xml: |
<jenkins.plugins.slack.SlackNotifier plugin="slack@2.3">
<baseUrl/>
<teamDomain/>
<authToken/>
<authTokenCredentialId>slack-token</authTokenCredentialId>
<botUser>false</botUser>
<room>build-status</room>
<startNotification>false</startNotification>
<notifySuccess>false</notifySuccess>
<notifyAborted>true</notifyAborted>
<notifyNotBuilt>true</notifyNotBuilt>
<notifyUnstable>true</notifyUnstable>
<notifyRegression>true</notifyRegression>
<notifyFailure>true</notifyFailure>
<notifyBackToNormal>true</notifyBackToNormal>
<notifyRepeatedFailure>false</notifyRepeatedFailure>
<includeTestSummary>false</includeTestSummary>
<includeFailedTests>false</includeFailedTests>
<commitInfoChoice>AUTHORS_AND_TITLES</commitInfoChoice>
<includeCustomMessage>false</includeCustomMessage>
<customMessage/>
</jenkins.plugins.slack.SlackNotifier>
- hourly_boiler_plate: &hourly_boiler_plate
name: hourly_boiler_plate
concurrent: true
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
# runs every 4 hours
triggers:
- timed: 'H 4,8,12,16,20 * * *'
- release_build_boiler_plate: &release_build_boiler_plate
name: release_build_boiler_plate
concurrent: true
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
- string:
name: ONOS_VERSION
default: '1.15'
description: 'Version tag of ONOS to build'
- string:
name: ONOS_NEXT_VERSION
default: '1.15.0-SNAPSHOT'
description: 'Version of ONOS to reset tree to'
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
- docker_build_boiler_plate: &docker_build_boiler_plate
name: release_build_boiler_plate
concurrent: true
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
- string:
name: ONOS_TAG
default: ''
description: 'Tag of ONOS to build'
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
- job-template:
#default name is global
name: '{project-name}-{stream}-verify'
# Job template for Java verify jobs
#
# The purpose of this job templte is to run "maven clean install" for
# projects using this template.
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-verify.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: '{project-name}-{stream}-bazel-verify'
# Job template for Java verify jobs
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-bazel-verify.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
# workaround for lack of parameter expansion support in shell: (see above)
- job-template:
#default name is global
name: 'onos-yang-tools-{stream}-verify'
# Job template for Java verify jobs
#
# The purpose of this job templte is to run "maven clean install" for
# projects using this template.
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-yang-tools-verify.sh
- job-template:
#default name is global
name: 'onos-yang-tools-release-build'
# Job template for ONOS Yang tools release jobs
#
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
- string:
name: YANGTOOLS_VERSION
default: '2.4.4'
description: 'Version tag of ONOS Yang tools to build and release'
- string:
name: YANGTOOLS_NEXT_VERSION
default: '2.5-SNAPSHOT'
description: 'Version of ONOS Yang tools to reset tree to afterwards'
scm:
- lf-infra-gerrit-scm:
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
choosing-strategy: gerrit
jenkins-ssh-credential: '{jenkins-ssh-credential}'
builders:
- lf-provide-maven-settings:
settings-file: 'release-build-maven-settings'
global-settings-file: 'release-build-maven-settings'
- config-file-provider:
files:
- file-id: 'onos-build-credentials'
target: 'onos-build-credentials'
variable: 'CREDENTIALS_FILE'
- file-id: 'buck-config-local'
target: '.buckconfig.local'
variable: 'BUCK_CONFIG_FILE'
- file-id: 'gpg-key'
target: 'jenkins.key'
variable: 'GPG_KEY_FILE'
- file-id: 'release-build-maven-settings'
target: 'settings.xml'
variable: 'MAVEN_SETTINGS'
- file-id: 'api-onosproject-ssh-key'
target: 'id_rsa.pub'
variable: 'API_ONOSPROJECT_SSH_KEY'
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-yang-tools-release-build.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
# workaround for lack of parameter expansion support in shell: (see above)
- job-template:
#default name is global
name: 'onos-app-samples-{stream}-verify'
# Job template for Java verify jobs
#
# The purpose of this job templte is to run "maven clean install" for
# projects using this template.
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-app-samples-verify.sh
# workaround for lack of parameter expansion support in shell: (see above)
- job-template:
#default name is global
name: 'onos-loxi-{stream}-verify'
# Job template for Java verify jobs
#
# The purpose of this job templte is to run "maven clean install" for
# projects using this template.
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-loxi-verify.sh
# workaround for lack of parameter expansion support in shell: (see above)
- job-template:
#default name is global
name: 'onos-gui-{stream}-verify'
# Job template for Java verify jobs
#
# The purpose of this job templte is to run "maven clean install" for
# projects using this template.
#
# Required Variables:
# branch: git branch (eg. master)
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *verify_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-gui-verify.sh
- job-template:
#default name is global
name: 'onos-{stream}-release-build-verify'
# Job template for Java release check jobs
#
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *daily_boiler_plate
builders:
- config-file-provider:
files:
- file-id: 'gpg-key'
target: 'jenkins.key'
variable: 'GPG_KEY_FILE'
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-release-build-verify.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: 'onos-release-build'
# Job template for Java release jobs
#
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *release_build_boiler_plate
builders:
- lf-provide-maven-settings:
settings-file: 'release-build-maven-settings'
global-settings-file: 'release-build-maven-settings'
- config-file-provider:
files:
- file-id: 'onos-build-credentials'
target: 'onos-build-credentials'
variable: 'CREDENTIALS_FILE'
- file-id: 'buck-config-local'
target: '.buckconfig.local'
variable: 'BUCK_CONFIG_FILE'
- file-id: 'gpg-key'
target: 'jenkins.key'
variable: 'GPG_KEY_FILE'
- file-id: 'release-build-maven-settings'
target: 'settings.xml'
variable: 'MAVEN_SETTINGS'
- file-id: 'api-onosproject-ssh-key'
target: 'id_rsa.pub'
variable: 'API_ONOSPROJECT_SSH_KEY'
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-release-build.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: 'onos-bazel-release-build'
# Job template for Java release jobs
#
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *release_build_boiler_plate
builders:
- lf-provide-maven-settings:
settings-file: 'release-build-maven-settings'
global-settings-file: 'release-build-maven-settings'
- config-file-provider:
files:
- file-id: 'onos-build-credentials'
target: 'onos-build-credentials'
variable: 'CREDENTIALS_FILE'
- file-id: 'gpg-key'
target: 'jenkins.key'
variable: 'GPG_KEY_FILE'
- file-id: 'release-build-maven-settings'
target: 'settings.xml'
variable: 'MAVEN_SETTINGS'
- file-id: 'api-onosproject-ssh-key'
target: 'id_rsa.pub'
variable: 'API_ONOSPROJECT_SSH_KEY'
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-bazel-release-build.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: 'onos-docker-build'
# Job template for Docker jobs
#
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *docker_build_boiler_plate
builders:
- lf-provide-maven-settings:
settings-file: 'release-build-maven-settings'
global-settings-file: 'release-build-maven-settings'
- config-file-provider:
files:
- file-id: 'onos-build-credentials'
target: 'onos-build-credentials'
variable: 'CREDENTIALS_FILE'
- file-id: 'buck-config-local'
target: '.buckconfig.local'
variable: 'BUCK_CONFIG_FILE'
- file-id: 'gpg-key'
target: 'jenkins.key'
variable: 'GPG_KEY_FILE'
- file-id: 'release-build-maven-settings'
target: 'settings.xml'
variable: 'MAVEN_SETTINGS'
- file-id: 'api-onosproject-ssh-key'
target: 'id_rsa.pub'
variable: 'API_ONOSPROJECT_SSH_KEY'
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-docker-build.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: 'onos-{stream}-maven-verify'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *hourly_boiler_plate_with_slack
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-maven-verify.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
#default name is global
name: 'onos-{stream}-sonar'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *daily_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-sonar.sh
# JJB 1.6.2 does not support parameter expansion on filename?
#- shell: !include-raw-escape: {project-name}-verify.sh
- job-template:
name: 'onos-{stream}-stc-verify'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *hourly_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-run-stc.sh
- job-template:
name: 'onos-{stream}-bazel-stc-verify'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *hourly_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-run-bazel-stc.sh
- job-template:
name: 'onos-{stream}-stc-hag-verify'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *hourly_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: onos-run-stc-hag.sh
- job-template:
name: 'onos-{stream}-bazel-stc-hag-verify'
<<: *job_boiler_plate
# yamllint disable-line rule:key-duplicates
<<: *hourly_boiler_plate
builders:
#put shell scripts in file then make sure shell check is installed on verify vms
- shell: !include-raw-escape: install-bazel.sh
- shell: !include-raw-escape: onos-run-bazel-stc-hag.sh
- project:
name: onos
project-name: onos
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'onos-1.10'
- 'onos-1.11'
- 'onos-1.12'
- 'onos-1.13'
- 'onos-1.14'
jobs:
- '{project-name}-{stream}-verify'
- project:
name: onos-bazel
project-name: onos-bazel
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
- 'onos-1.14'
- 'onos-1.15'
- 'upan-connect18'
- 'upan-connect18-1.14'
jobs:
- '{project-name}-{stream}-bazel-verify'
- project:
name: onos-gui
project-name: onos-gui
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
- 'onos-1.10'
- 'onos-1.11'
- 'onos-1.12'
- 'onos-1.13'
- 'onos-1.14'
- 'onos-1.15'
jobs:
- 'onos-gui-{stream}-verify'
- project:
name: onos-yang-tools
project-name: onos-yang-tools
project: onos-yang-tools
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-yang-tools-{stream}-verify'
- project:
name: onos-yang-tools-release-build
project-name: onos-yang-tools-release-build
project: onos-yang-tools
build-timeout: '240'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream: 'master'
jobs:
- 'onos-yang-tools-release-build'
- project:
name: onos-app-samples
project-name: onos-app-samples
project: onos-app-samples
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-app-samples-{stream}-verify'
- project:
name: onos-loxi
project-name: onos-loxi
project: onos-loxi
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-loxi-{stream}-verify'
- project:
name: onos-release
project-name: onos-release
project: onos
build-timeout: '240'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-{stream}-release-build-verify'
- project:
name: onos-maven-verify
project-name: onos-maven-verify
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'onos-1.12'
- 'onos-1.13'
jobs:
- 'onos-{stream}-maven-verify'
- project:
name: onos-sonar
project-name: onos-sonar
project: onos
build-timeout: '90'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-{stream}-sonar'
- project:
name: onos-release-build
project-name: onos-release-build
project: onos
build-timeout: '240'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream: 'master'
jobs:
- 'onos-release-build'
- project:
name: onos-bazel-release-build
project-name: onos-bazel-release-build
project: onos
build-timeout: '240'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream: 'master'
jobs:
- 'onos-bazel-release-build'
- project:
name: onos-docker-build
project-name: onos-docker-build
project: onos
build-timeout: '90'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream: 'master'
jobs:
- 'onos-docker-build'
- project:
name: onos-stc-verify
project-name: onos-stc-verify
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'onos-1.12'
- 'onos-1.13'
- 'onos-1.14'
jobs:
- 'onos-{stream}-stc-verify'
- project:
name: onos-bazel-stc-verify
project-name: onos-bazel-stc-verify
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-{stream}-bazel-stc-verify'
- project:
name: onos-stc-hag-verify
project-name: onos-stc-hag-verify
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'onos-1.12'
- 'onos-1.13'
- 'onos-1.14'
jobs:
- 'onos-{stream}-stc-hag-verify'
- project:
name: onos-bazel-stc-hag-verify
project-name: onos-bazel-stc-hag-verify
project: onos
build-timeout: '30'
build-node: 'ubuntu16.04-basebuild-8c-15g'
stream:
- 'master'
jobs:
- 'onos-{stream}-bazel-stc-hag-verify'