blob: a258eb8b8754087d7b2a9ae118c9ea33e07e2338 [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: 'master-trigger'
description: |
<!-- Managed by Jenkins Job Builder -->
master-trigger can trigger TestON tests on any branches 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. <br />
You must specify which tests to run in the text field below. <br />
Leave this unchecked if simulating a nightly test run.
- string:
name: TimeOut
default: '1410'
description: |
Minutes until the entire pipeline times out. Default: 23 hours 30 minutes. This value is also passed to the downstream jobs.
- 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.
- text:
name: branches
default: ""
description: "ONOS and TestON version to run on."
- text:
name: Tests
default: ""
description: 'Specify the tests you want to run, if manual_run is selected.'
- 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.<br />
The "manual_run" parameter must not be selected for this to take effect.
- 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'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
concurrent: true
triggers:
- timed: |
TZ=America/Los_Angeles
30 19 * * 1,2,3,4,5
30 11 * * 6,7
pipeline-scm:
script-path: '{jenkins-path}/MasterTrigger.groovy'
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/master-trigger/">master-trigger</a> to trigger a build in this pipeline.<br />
Wiki graphs may also be refreshed here. <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: 'OnlyRefreshGraphs'
default: false
description: "Check this option to refresh the graphs without running any of the tests."
- string:
name: 'TimeOut'
default: '1410'
description: 'Minutes until the entire pipeline times out. Default: 23 hours 30 minutes. This value is usually passed from the upstream <a href="https://jenkins.onosproject.org/view/QA/job/master-trigger/">master-trigger</a> job.'
- string:
name: 'TestStation'
default: ''
description: 'Name of the test station to run this pipeline. Example: "TestStation-VMs".'
- string:
name: 'NodeLabel'
default: ''
description: 'Node label of the test station that runs this pipeline. Example: "VM".'
- text:
name: 'TestsOverride'
default: ''
description: "Add a list of tests here to run, which overrides the test list from the .property file."
- string:
name: 'Category'
default: '{type}'
description: 'Category of the pipeline. Not recommended to modify. Primarily used when triggered by the upstream <a href="https://jenkins.onosproject.org/view/QA/job/master-trigger/">master-trigger</a> job.'
- string:
name: 'Branch'
default: '{version}'
description: 'Branch of the pipeline. Not recommended to modify. Primarily used when triggered by the upstream <a href="https://jenkins.onosproject.org/view/QA/job/master-trigger/">master-trigger</a> job.'
- lf-infra-parameters:
project: 'OnosSystemTest'
branch: 'master'
stream: 'master'
lftools-version: '<1.0.0'
concurrent: false
pipeline-scm:
script-path: '{jenkins-path}/CommonJenkinsFile.groovy'
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'
- job-template:
name: 'generate_automated_schedule_wiki'
description: |
<!-- Managed by Jenkins Job Builder -->
<p>Build this job to refresh the <a href="https://wiki.onosproject.org/display/ONOS/Automated+Test+Schedule">Automated Test Schedule</a> on the ONOS Wiki.</p>
<<: *test-pipe-job-boiler-plate
pipeline-scm:
script-path: '{jenkins-path}/generateWikiTestList.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:
- 'master-trigger'
- 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-overall'
- 'graph-generator-CHO'
- project:
name: generate-wiki-pages
project-name: 'generate-wiki-pages'
<<: *test-pipe-init-procedure-plate
jobs:
- 'generate_wiki_pages'
- 'generate_automated_schedule_wiki'