---
# 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'
      - '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

    triggers:
      - timed: |
                TZ=America/Los_Angeles
                30 19 * * 1,2,3,4,5
                30 11 * * 6,7

    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.

      - choice:
         name: ONOSVersion
         choices:
           - 'master'
           - '1.13'
           - '1.12'
         description: "ONOS and TestON versions to run on."

      - string:
         name: ONOSJVMHeap
         default: "\"${{JAVA_OPTS:--Xms8G -Xmx8G}}\""
         description: 'ONOS cell JVM heap size 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

    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-1.13'
           - 'onos-1.12'
           - 'onos-1.11'
         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-1.13'
           - 'onos-1.12'
           - 'onos-1.11'
         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-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: |
                   master
         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'

- 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'
