blob: bebdfbe31a39fc061bdc4a56426a8608676f284a [file] [log] [blame]
---
# ONOS System Test Pipeline jobs
# TODO: Change all the job names in Jenkins Pipeline script.
- test-free-job-boiler-plate: &test-free-job-boiler-plate
name: test-free-job-boiler-plate
project-type: freestyle
- init-station-plate: &init-station-plate
name: init-station-plate
station-type:
- 'VM'
- 'BM'
- job-free-version-plate: &job-free-version-plate
name: job-free-version-plate
version:
- '1.11'
- '1.12'
- 'master'
- 'manually'
- test-free-init-procedure-plate: &test-free-init-procedure-plate
name: test-free-init-procedure-plate
project: OnosSystemTest
stream: 'master'
- inject-env-variable-plate: &inject-env-variable-plate
name: inject-env-variable-plate
wrappers:
- inject:
properties-file: '/var/jenkins/TestONOS.property'
script-content: |
echo "ONOSBranch=$ONOSBranch" > /var/jenkins/TestONOS.property
echo "TestONBranch=$TestONBranch" >> /var/jenkins/TestONOS.property
echo "ONOSTag=$ONOSTag" >> /var/jenkins/TestONOS.property
echo "WikiPrefix=$WikiPrefix" >> /var/jenkins/TestONOS.property
override-build-parameters: true
# post_Job
- job-template:
name: postjob-{station-type}
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 1
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-{station-type}s'
publishers:
- image-gallery:
- gallery-type: archived-images-gallery
title: 'Test result'
includes: '*.jpg'
- archive:
artifacts: '*.jpg'
- job-template:
name: test-station-log-cleanup-VM
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'DAYS_OLD'
default: '15'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-VMs'
# triggers:
# - timed: '01 08 1,15 * *'
builders:
- shell: !include-raw-escape: vm-bm-clean-up.sh
- job-template:
name: test-station-log-cleanup-BM
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'DAYS_OLD'
default: '30'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-BMs'
# triggers:
# - timed: '01 08 1 * *'
builders:
- shell: !include-raw-escape: vm-bm-clean-up.sh
- job-template:
name: test-station-log-cleanup-CHO
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 15
parameters:
- string:
name: 'DAYS_OLD'
default: '15'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
# triggers:
# - timed: '@daily'
builders:
- shell: !include-raw-escape: cho-clean-up.sh
- job-template:
name: QA-check-style
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 100
parameters:
- string:
name: 'GERRIT_CHANGE_NUMBER'
default: ''
description: '5-digit number that corresponds to the patch set change on Gerrit.'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
concurrent: true
node: 'TestStation-Jeremys'
triggers:
- gerrit:
server-name: 'ONOS Project Gerrit'
trigger-on:
- patchset-created-event:
exclude-drafts: false
exclude-trivial-rebase: false
exclude-no-code-change: false
- draft-published-event
- comment-added-contains-event:
comment-contains-value: '(?i)^.*recheck$'
projects:
- project-compare-type: PLAIN
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern:
-'**/master'
- branch-compare-type: ANT
branch-pattern:
-'**/onos-1.[11-20]'
wrappers:
- lf-infra-wrappers:
build-timeout: 1800
jenkins-ssh-credential: '{jenkins-ssh-credential}'
builders:
- shell: !include-raw-escape: check-style.sh
publishers:
- warnings:
workspace-file-scanners:
- file-pattern: pep8Result.txt
scanner: Pep8
- job-template:
name: delta-nightly
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'NIGHTLY_FILE_NAME'
default: ''
description: |
Name of ONOS nightly build file
will be set to the latest file if not specified here
- string:
name: 'ONOS_VERSION'
default: '1.11.0'
description: 'Version number in ONOS nightly build file'
- string:
name: 'DELTA_PATH'
default: '/home/sdn'
description: 'Path of DELTA project'
- string:
name: 'WIKI_PREFIX'
default: 'master'
- bool:
name: 'CLEANUP'
default: true
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-BMs'
wrappers:
- inject:
properties-file: '/var/jenkins/TestONOS.property'
builders:
- shell: !include-raw-escape: delta-script.sh
publishers:
- plot:
- title: 'DELTA Test Results for master'
group: 'DELTA-nightly'
yaxis: 'Number of test cases'
style: line
series:
- file: 'DELTA-nightly.csv'
format: 'csv'
# Todo : add confluence ( use pipeline for post build ..? )
- job-template:
name: init-CHO
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'ONOSBranch'
default: 'master'
description: |
set onos branch to test. default to "master",
but can also be set at "onos-1.2", etc.
This parameter is also use to trigger where the test results to be posted
- string:
name: 'ONOSJVMHeap'
default: "\"${{JAVA_OPTS:--Xms8G -Xmx8G}}\""
description: 'onos cell jvm heap size setting'
- string:
name: 'TestONBranch'
default: 'master'
description: 'sets TestON branch'
- string:
name: 'ONOSTag'
default: ''
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
wrappers:
- inject:
properties-file: '/var/lib/jenkins/TestONOS.property'
script-content: |
echo "ONOSBranch=$ONOSBranch" > /var/lib/jenkins/TestONOS.property
echo "TestONBranch=$TestONBranch" >> /var/lib/jenkins/TestONOS.property
echo "ONOSTag=$ONOSTag" >> /var/lib/jenkins/TestONOS.property
override-build-parameters: true
builders:
- shell: !include-raw-escape: cho-init.sh
- job-template:
name: running-CHO
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
triggers:
- reverse:
jobs: 'init-CHO'
result: 'failure'
builders:
- shell: !include-raw-escape: running-cho.sh
- job-template:
name: post-CHO-master
<<: *test-free-job-boiler-plate
properties:
- lf-infra-properties:
project: '{project}'
build-days-to-keep: 7
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
# triggers:
# - timed: 'H/60 * * * *'
wrappers:
- inject:
properties-file: '/var/lib/jenkins/TestONOS.property'
builders:
- shell: !include-raw-escape: cho-post.sh
publishers:
- plot:
- title: 'Network, Application and ONOS Events (per hour)'
group: 'CHOTestMonkey'
num-builds: '72'
yaxis: 'Number of Events'
style: line
logarithmic-yaxis: true
series:
- file: 'event.csv'
format: 'csv'
- title: 'Failed Checks (per hour)'
group: 'CHOTestMonkey'
num-builds: '72'
yaxis: 'Number of Failed Checks'
style: line
logarithmic-yaxis: true
series:
- file: 'failure.csv'
format: 'csv'
- title: 'Warnings, Errors and Exceptions from Logs (per hour)'
group: 'CHOTestMonkey'
num-builds: '72'
yaxis: 'Number of Warnings or Errors'
style: line
logarithmic-yaxis: true
series:
- file: 'error.csv'
format: 'csv'
- job-template:
name: 'SR-log-{version}'
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-VMs'
publishers:
- archive:
artifacts: '*'
- job-template:
name: test-HA
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
days-to-keep: 5
num-to-keep: 100
parameters:
- string:
name: 'TEST_NAME'
default: 'HAbackupRecover'
description: 'The name of the TestON test suite'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-Jons'
triggers:
- reverse:
jobs: 'test-HA'
result: 'failure'
builders:
- shell: !include-raw-escape: test-ha.sh
publishers:
- plot:
- title: 'Test job results'
group: 'Test-HA'
yaxis: 'Number of test cases'
style: line
series:
- file: 'results.csv'
format: 'csv'
- title: 'Timers'
group: 'Test-HA'
yaxis: 'Time in seconds'
style: line
series:
- file: 'Timers.csv'
format: 'csv'
- post-tasks:
- escalate-status: true
script: |
if [ -e ${{WORKSPACE}}/${{TEST_NAME##*/}}Wiki.txt ] && ! grep -q "FAIL" ${{WORKSPACE}}/${{TEST_NAME##*/}}Wiki.txt
then
exit 0
else
exit 1
fi
- project:
name: post-result-jobs
project-name: post-result-jobs
<<: *test-free-init-procedure-plate
<<: *init-station-plate
jobs:
- 'postjob-{station-type}'
- project:
name: cleanup-jobs
project-name: cleanup-jobs
<<: *test-free-init-procedure-plate
<<: *init-station-plate
jobs:
- 'test-station-log-cleanup-VM'
- 'test-station-log-cleanup-BM'
- 'test-station-log-cleanup-CHO'
- project:
name: check-style
project-name: check-style
<<: *test-free-init-procedure-plate
jobs:
- 'QA-check-style'
- project:
name: delta-test
project-name: delta-test
<<: *test-free-init-procedure-plate
jobs:
- 'delta-nightly'
- project:
name: cho-tests
project-name: cho-tests
<<: *test-free-init-procedure-plate
jobs:
- 'init-CHO'
- 'running-CHO'
- 'post-CHO-master'
- project:
name: log-pipeline
<<: *job-free-version-plate
project-name: 'log-pipeline'
<<: *test-free-init-procedure-plate
jobs:
- 'SR-log-{version}'
- project:
name: personnel-station
project-name: 'log-pipeline'
<<: *test-free-init-procedure-plate
jobs:
- 'test-HA'