---
# 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"
    SR-StratumBMv2: "SRBridging-stratum\nSRDhcprelay-stratum"
    SR-Tofino: "SRBridging-tofino"


- 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'
      - '2.2'
      - '2.3'
      - 'master'
      - 'manually'

- job-version-plate: &job-mo-version-plate
    name: job-mo-version-plate
    mo-version:
      - 'master'
      - 'manually'

- job-type-plate: &job-type-plate
    name: job-type-plate
    type:
      - 'FUNC'
      - 'HA'
      - 'SCPF'
      - 'USECASE'
      - 'SR'
      - 'SRHA'
      - 'SR-StratumBMv2'
      - 'SR-Tofino'

- job-type-plate: &job-mo-type-plate
    name: job-mo-type-plate
    mo-type:
      - 'MO'

- 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. E.g. 1.15"

      - 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: '{mo-type}-pipeline-{mo-version}'
    description: |
                  <!-- Managed by Jenkins Job Builder -->
                  This pipeline contains the test results and logs of {mo-type} on micro-ONOS {mo-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 />
                  Created by Jeremy Ronquillo - jeremyr@opennetworking.org<br />
                  Copyright (c) 2019 Open Networking Foundation (ONF)

    <<: *test-pipe-job-boiler-plate

    parameters:

      - 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-micro-onos-node".'

      - string:
         name: 'NodeLabel'
         default: ''
         description: 'Node label of the test station that runs this pipeline. Example: "micro-onos".'

      - 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: '{mo-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: '{mo-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}/MOJenkinsFile.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.3'
           - 'onos-2.2'
           - '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.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </p>

      - string:
         name: FUNC_page_id
         default: '-1'
         description: |
                       <p>If you know the page ID for the FUNC results front page, add that here.
                          This will publish the FUNC individual test child pages.<br />
                          Example: "31556540" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556540">1.15-Functionality</a><br />
                          Example: "-1" means the page does not exist yet or is not needed for this run.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </p>

      - string:
         name: HA_page_id
         default: '-1'
         description: |
                       <p>If you know the page ID for the HA results front page, add that here.
                          This will publish the HA individual test child pages.<br />
                          Example: "31556547" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556547">1.15-HA</a><br />
                          Example: "-1" means the page does not exist yet or is not needed for this run.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </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.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </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.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </p>

      - string:
         name: SR_page_id
         default: '-1'
         description: |
                       <p>If you know the page ID for the SR results front page, add that here.
                          This will publish the SR individual test child pages.<br />
                          Example: "31556601" is the pageID for <a href="https://wiki.onosproject.org/pages/viewpage.action?pageId=31556601">1.15-Segment Routing</a><br />
                          Example: "-1" means the page does not exist yet or is not needed for this run.<br />
                          <b>DO NOT SPECIFY MORE THAN 1 PAGE IDs IN THE SAME BUILD.</b>
                          </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: micro-onos-build-pipeline

    <<: *job-mo-type-plate

    project-name: '{mo-type}-pipeline'

    <<: *test-pipe-init-procedure-plate
    <<: *job-mo-version-plate

    jobs:
      - '{mo-type}-pipeline-{mo-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

    properties:
      - 'disable-resume'

    jobs:
      - 'generate_wiki_pages'
      - 'generate_automated_schedule_wiki'
