blob: c697abf0c28b5a68217340c2cfb472c20f08e5c4 [file] [log] [blame]
---
# ONOS System Test Pipeline jobs
# TODO: for some reason, lf-* types of macro cannot access to the variable. I think it is typical problem to pipeline job type.
- var-init-boiler-plate: &var-init-boiler-plate
name: var-init-boiler-plate
FUNC: "FUNCgroup\nFUNCflow\nFUNCintent\nFUNCintentRest\nFUNCipv6Intent\nFUNCnetCfg\nFUNCnetconf\nFUNCoptical\nFUNCovsdbtest\nFUNCformCluster"
HA: "HAclusterRestart\nHAfullNetPartition\nHAkillNodes\nHAsanity\nHAscaling\nHAsingleInstanceRestart\nHAstopNodes\nHAswapNodes\nHAupgrade\nHAupgradeRollback"
SCPF: "SCPFcbench\nSCPFflowTp1g\nSCPFhostLat\nSCPFintentEventTp\nSCPFintentInstallWithdrawLat\nSCPFintentRerouteLat\nSCPFmastershipFailoverLat\nSCPFbatchFlowResp\nSCPFportLat\nSCPFscaleTopo\nSCPFscalingMaxIntents\nSCPFswitchLat\nSCPFflowTp1gWithFlowObj\nSCPFintentEventTpWithFlowObj\nSCPFintentRerouteLatWithFlowObj\nSCPFscalingMaxIntentsWithFlowObj\nSCPFintentInstallWithdrawLatWithFlowObj"
USECASE: "FUNCbgpls\nFUNCvirNetNB\nPLATdockertest\nVPLSBasic\nVPLSfailsafe\nUSECASE_SdnipFunction\nUSECASE_SdnipFunctionCluster"
SR: "SRRouting\nSRBridging\nSRDhcprelay\nSRDynamicConf\nSRMulticast\nSRClusterRestart\nSRDynamic\nSRHighAvailability\nSRLinkFailure\nSROnosFailure\nSRSanity\nSRSwitchFailure"
SRHA: "SRHAclusterRestart\nSRHAfullNetPartition\nSRHAkillNodes\nSRHAsanity\nSRHAscaling\nSRHAsingleInstanceRestart\nSRHAstopNodes\nSRHAswapNodes\nSRHAupgrade\nSRHAupgradeRollback"
- test-pipe-job-boiler-plate: &test-pipe-job-boiler-plate
name: test-pipe-job-boiler-plate
project-type: pipeline
sandbox: true
properties:
- build-discarder:
num-to-keep: 20
gitURL: https://gerrit.onosproject.org/OnosSystemTest
- test-pipe-init-procedure-plate: &test-pipe-init-procedure-plate
name: test-pipe-init-procedure-plate
project: OnosSystemTest
stream: 'master'
jenkins-path: 'TestON/JenkinsFile'
- job-version-plate: &job-version-plate
name: job-version-plate
version:
- '1.12'
- '1.13'
- '1.14'
- '1.15'
- '2.0'
- '2.1'
- 'master'
- 'manually'
- job-type-plate: &job-type-plate
name: job-type-plate
type:
- 'FUNC'
- 'HA'
- 'SCPF'
- 'USECASE'
- 'SR'
- 'SRHA'
- job-template:
name: all-pipeline-trigger
description: |
<!-- Managed by Jenkins Job Builder -->
all-pipeline-trigger can trigger any TestON test on any branch of ONOS and TestON, by running the test category pipeline that contains the test. <br />
This pipeline is triggered by timer for the nightly builds. <br />
Created by Devin Lim - devin@opennetworking.org<br />
Copyright (c) 2017 Open Networking Foundation (ONF)
<<: *test-pipe-job-boiler-plate
parameters:
- bool:
name: manual_run
default: false
description: |
Check this option if you are manually running this job (you most likely are). <br />
- text:
name: machines
default: |
vm
bm
fabric
description: 'Specify the machine-trigger you want to run.'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
concurrent: true
pipeline-scm:
script-path: '{jenkins-path}/JenkinsfileTrigger'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: '{machine}-pipeline-trigger'
id: pipeline-trigger
description: |
<!-- Managed by Jenkins Job Builder -->
{machine}-pipeline-trigger can trigger Segment Routing TestON test on any branch of ONOS and TestON, by running the test category pipeline that contains the test. <br />
This pipeline is triggered by timer for the nightly builds. <br />
You may manually trigger this pipeline as well - provide the tests to run and the branch of ONOS and TestON. <br /> <br />
Note: <i>The console output for this job does <b>not</b> contain any test result logs.</i><br />
Visit the test category pipelines (such as <a href="https://jenkins.onosproject.org/view/QA/job/FUNC-pipeline-master/">FUNC-pipeline-master</a>) to view the test logs. <br /> <br />
Created by Devin Lim - devin@opennetworking.org<br />
Copyright (c) 2017 Open Networking Foundation (ONF)
<<: *test-pipe-job-boiler-plate
parameters:
- bool:
name: manual_run
default: false
description: |
Check this option if you are manually running this job (you most likely are). <br />
You must specify which tests to run in the text field below.
- bool:
name: PostResult
default: false
description: |
Check this option if you want to update the results on the wiki. <br />
When manually run, this will update the wiki pages corresponding to the tests that were run. <br />
This option will always be selected during nightly builds.
- bool:
name: isOldFlow
default: true
description: |
Check this option if you prefer to run the old flow rule over the new one. <br />
* This only applies to SCPF tests.
- text:
name: branches
default: |
master
2.1
2.0
1.15
1.14
1.13
1.12
description: "ONOS and TestON versions to run on. Multiple branches supported."
- string:
name: simulate_day
default: ""
description: 'Enter a day prefix (first 3 letters of a day, lowercase) to simulate running a nightly test on that day. Leave this field empty to default to today. Example: type "sun" for Sunday'
- string:
name: ONOSJAVAOPTS
default: "\"${{JAVA_OPTS:--Xms8G -Xmx8G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Dkaraf.log.console=INFO -Dds.lock.timeout.milliseconds=60000}}\""
description: 'ONOS cell JAVA_OPTS setting.'
- string:
name: ONOSTag
default: ''
desciption: 'specific branch trying to checkout'
- text:
name: Tests
default: |
{testList}
description: 'Specify the tests you want to run, if manual_run is selected.'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
concurrent: false
triggers:
- timed: |
TZ=America/Los_Angeles
30 19 * * 1,2,3,4,5
30 11 * * 6,7
pipeline-scm:
script-path: '{jenkins-path}/{fileName}JenkinsfileTrigger'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: '{type}-pipeline-{version}'
description: '<!-- Managed by Jenkins Job Builder -->
This pipeline contains the test results and logs of {type} on ONOS {version}. <br /><br />
Visit <a href="https://jenkins.onosproject.org/view/QA/job/all-pipeline-trigger/">all-pipeline-trigger</a> to trigger a build in this pipeline.<br />
<font color="red">Unless debugging, DO NOT MANUALLY BUILD THIS PIPELINE.</font><br /><br />
Created by Devin Lim - devin@opennetworking.org<br />
Copyright (c) 2017 Open Networking Foundation (ONF)'
<<: *test-pipe-job-boiler-plate
parameters:
- string:
name: TRIGGER_ONLY_WHEN_PREVIOUS_JOB_WAS_BUILT_HERE
default: 'DO_NOT_MANUALLY_TRIGGER_A_BUILD_HERE'
description: |
<a href="https://jenkins.onosproject.org/view/QA/job/all-pipeline-trigger/">all-pipeline-trigger</a> triggers this pipeline automatically.
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
concurrent: false
pipeline-scm:
script-path: '{jenkins-path}/{type}JenkinsFile'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: 'manual-graph-generator-SCPF'
description: |
<!-- Managed by Jenkins Job Builder -->
Refresh the wiki graphs here. Useful when there is a change in the graph scripts.<br />
<br />
You may also generate a graph trend that displays any number of builds here.<br />
However, keep in mind that only the 50 build graphs will be displayed on the wiki, unless they are manually changed on the wiki.<br >
<br >
Graphs are stored in the <a href="https://jenkins.onosproject.org/view/QA/job/postjob-BM/">postjob-BM<a> workspace.
<<: *var-init-boiler-plate
<<: *test-pipe-job-boiler-plate
parameters:
- choice:
name: ONOSbranch
choices:
- 'master'
- 'onos-2.1'
- 'onos-2.0'
- 'onos-1.15'
- 'onos-1.14'
- 'onos-1.13'
- 'onos-1.12'
description: "Possible branches (may vary depending on test)"
- bool:
name: isOldFlow
default: false
description: 'Check if it is using the old flow rules'
- text:
name: Test
default: '{SCPF}'
description: 'List of the tests to generate.'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
pipeline-scm:
script-path: '{jenkins-path}/SCPF_Graph_Generator'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: 'manual-graph-generator-trend'
description: |
<!-- Managed by Jenkins Job Builder -->
Refresh the trend graphs here. Useful when there is a change in the graph scripts. <br />
Graphs are stored in their respective Postjob pipeline.
<<: *var-init-boiler-plate
<<: *test-pipe-job-boiler-plate
parameters:
- choice:
name: ONOSbranch
choices:
- 'master'
- 'onos-2.1'
- 'onos-2.0'
- 'onos-1.15'
- 'onos-1.14'
- 'onos-1.13'
- 'onos-1.12'
description: "Possible branches (may vary depending on test)"
- choice:
name: NodeCluster
choices:
- VM
- BM
- Fabric
description: |
Node cluster where the test graphs in the list are located. <br />
List of the tests will be refreshed depends on the node cluster.
- text:
name: Test
default: |
VM:
{FUNC}
{HA}
BM:
{USECASE}
Fabric:
{SR}
{SRHA}
description: 'List of the tests to generate.'
- string:
name: Builds
default: '20'
description: 'Builds to show in the graph.'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
pipeline-scm:
script-path: '{jenkins-path}/Trend_Graph_Generator'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: 'manual-graph-generator-overall'
description: |
<!-- Managed by Jenkins Job Builder -->
Refresh the overall graphs here. Useful when there is a change in the graph scripts. <br />
Graphs are stored in pipeline-postjob-vm.
<<: *test-pipe-job-boiler-plate
parameters:
- choice:
name: ONOSbranch
choices:
- 'master'
- 'onos-2.1'
- 'onos-2.0'
- 'onos-1.15'
- 'onos-1.14'
- 'onos-1.13'
- 'onos-1.12'
description: "Possible branches (may vary depending on test)"
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
pipeline-scm:
script-path: '{jenkins-path}/Overall_Graph_Generator'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: 'graph-generator-CHO'
description: |
<!-- Managed by Jenkins Job Builder -->
Generates the CHO graphs. <br />
Graphs are stored in pipeline-postjob-cho.
<<: *test-pipe-job-boiler-plate
parameters:
- text:
name: ONOSbranch
default: |
onos-1.15
description: "Branch of the onos"
- choice:
name: hours
choices:
- '168'
- '72'
description: "Hours of data to display."
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
triggers:
- timed: 'H/60 * * * *'
pipeline-scm:
script-path: '{jenkins-path}/CHO_Graph_Generator'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- job-template:
name: 'generate_wiki_pages'
description: |
<!-- Managed by Jenkins Job Builder -->
<p>When there is a new version of ONOS about to release, run this job multiple times in the
following order to create all necessary test result wiki pages.</p>
<p>How to run this job:</p><ol>
<li>First, run the job with the following parameters to generate only the <b>top-level
result page</b> for that version:<ul>
<li>top_level_page_id: -1</li>
<li>SCPF_page_id: -1</li>
<li>USECASE_page_id: -1</li>
</ul>
<li>Second, get the pageID of the top-level result page just generated, and run
this job again with "top_level_page_id" as the known pageID to generate the <b>test
category front pages</b>.<ul>
<li>top_level_page_id: <i>page ID of top-level result page</i> </li>
<li>SCPF_page_id: -1</li>
<li>USECASE_page_id: -1</li>
</ul>
<li>Next, get the pageID of the SCPF result page just generated, and run
this job again with "SCPF_page_id" as the known pageID to generate <b>SCPF individual
result pages</b>.<ul>
<li>top_level_page_id: -1</li>
<li>SCPF_page_id: <i>page ID of SCPF result page</i></li>
<li>USECASE_page_id: -1</li>
</ul>
<li>Finally, get the pageID of the USECASE result page, and run
this job again with "USECASE_page_id" as the known pageID to generate the <b>SR results
page</b>.<ul>
<li>top_level_page_id: -1</li>
<li>SCPF_page_id: -1</li>
<li>USECASE_page_id: <i>page ID of USECASE result page</i></li>
</ul>
</ol>
<<: *test-pipe-job-boiler-plate
parameters:
- string:
name: version
default: ''
description: |
<p>The version of ONOS to create wiki pages.</p>
<p>Must be in the format: #.## <br /> Example: "1.15"</p>
<p><b>DO NOT PREFIX WITH "ONOS-" OR "onos-".</b></p>
- string:
name: bird
default: ''
description: |
<p>The name of the bird representing the ONOS release.
This is used for the title of the version top-level result page.<br />
Example: "Peacock"</p>
- string:
name: top_level_page_id
default: '-1'
description: |
<p>If you know the page ID for the version top-level result page, add that here.
This will publish the test category pages (FUNC, HA, etc.) as child pages.<br />
Example: "31556529" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556529">ONOS-1.15 (Peacock)</a><br />
Example: "-1" means the page does not exist yet or is not needed for this run.
</p>
- string:
name: SCPF_page_id
default: '-1'
description: |
<p>If you know the page ID for the SCPF results front page, add that here.
This will publish the SCPF individual test child pages.<br />
Example: "31556549" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556549">1.15-Performance and Scale-out</a><br />
Example: "-1" means the page does not exist yet or is not needed for this run.
</p>
- string:
name: USECASE_page_id
default: '-1'
description: |
<p>If you know the page ID for the USECASE results front page, add that here.
This will publish the SR front page as a child page.<br />
Example: "31556579" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556579">1.15-USECASE</a><br />
Example: "-1" means the page does not exist yet or is not needed for this run.
</p>
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
pipeline-scm:
script-path: '{jenkins-path}/generateReleaseTestONWiki.groovy'
scm:
- git:
url: '{gitURL}'
branches:
- 'master'
- project:
name: pipeline-trigger
project-name: pipeline-trigger
<<: *test-pipe-init-procedure-plate
<<: *var-init-boiler-plate
jobs:
- 'all-pipeline-trigger'
- 'pipeline-trigger':
machine: 'vm'
testList: |
{FUNC}
{HA}
fileName: 'VM_BM'
- 'pipeline-trigger':
machine: 'bm'
testList: |
{SCPF}
{USECASE}
fileName: 'VM_BM'
- 'pipeline-trigger':
machine: 'fabric'
testList: |
{SR}
{SRHA}
fileName: 'Fabric'
- project:
name: build-pipeline
<<: *job-type-plate
project-name: '{type}-pipeline'
<<: *test-pipe-init-procedure-plate
<<: *job-version-plate
jobs:
- '{type}-pipeline-{version}'
- project:
name: graph-generator
project-name: 'graph-generator'
<<: *test-pipe-init-procedure-plate
jobs:
- 'manual-graph-generator-SCPF'
- 'manual-graph-generator-trend'
- 'manual-graph-generator-overall'
- 'graph-generator-CHO'
- project:
name: generate-wiki-pages
project-name: 'generate-wiki-pages'
<<: *test-pipe-init-procedure-plate
jobs:
- 'generate_wiki_pages'