---

# -----------------------------------------------------------------------
# Copyright 2017-2024 Open Networking Foundation Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------
# SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
# Entropy: 0fcb5ffa-d1a4-11ee-be5e-9f44b7181764
# -----------------------------------------------------------------------
# Intent: Verification jobs for 'bbsim' repo
# -----------------------------------------------------------------------

- project:
    name: bbsim
    project: '{name}'
    dest-gopath: "github.com/opencord"

    jobs:
      - 'verify-bbsim-jobs':
          branch-regexp: '{all-branches-regexp}'
      - 'verify-bbsim-jobs-voltha-2.13':
          name-extension: '-voltha-2.13'
          override-branch: 'voltha-2.13'
          branch-regexp: '^voltha-2.13$'
      - 'verify-bbsim-jobs-voltha-2.12':
          name-extension: '-voltha-2.12'
          override-branch: 'voltha-2.12'
          branch-regexp: '^voltha-2.12$'
      - 'verify-bbsim-jobs-voltha-2.11':
          name-extension: '-voltha-2.11'
          override-branch: 'voltha-2.11'
          branch-regexp: '^voltha-2.11$'
      - 'verify-bbsim-jobs-master':
          branch-regexp: '^master$'
      - 'publish-bbsim-jobs':
          branch-regexp: '{all-branches-regexp}'

- job-group:
    name: 'verify-bbsim-jobs'
    jobs:
      - 'verify-licensed'
      - 'make-unit-test':
          # build-node: 'ubuntu18.04-basebuild-4c-8g'
          build-node: 'ubuntu18.04-basebuild-8c-15g'
          dest-gopath: "github.com/opencord"
          unit-test-targets: 'lint sca test'
          unit-test-keep-going: 'false'

- job-group:
    name: 'verify-bbsim-jobs-master'
    jobs:
      - 'voltha-patch-test':
          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.tag=master'
          testTargets: |
            - target: sanity-bbsim-att
              workflow: att
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-dt
              workflow: dt
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-tt
              workflow: tt
              flags: ""
              teardown: true
              logging: true

- job-group:
    name: 'verify-bbsim-jobs-voltha-2.13'
    jobs:
      - 'voltha-patch-test':
          pipeline-script: 'voltha/bbsim-tests.groovy'
          pipeline-branch: 'voltha-2.13'
          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.tag=master'
          testTargets: |
            - target: sanity-bbsim-dt
              workflow: dt
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-tt
              workflow: tt
              flags: ""
              teardown: true
              logging: true

- job-group:
    name: 'verify-bbsim-jobs-voltha-2.12'
    jobs:
      - 'voltha-patch-test':
          pipeline-script: 'voltha/bbsim-tests.groovy'
          pipeline-branch: 'voltha-2.12'
          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.tag=master'
          testTargets: |
            - target: sanity-bbsim-att
              workflow: att
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-dt
              workflow: dt
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-tt
              workflow: tt
              flags: ""
              teardown: true
              logging: true

- job-group:
    name: 'verify-bbsim-jobs-voltha-2.11'
    jobs:
      - 'voltha-patch-test':
          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
          pipeline-branch: 'voltha-2.11'
          extraHelmFlags: '--set global.image_tag=master --set onos-classic.image.tag=master'
          testTargets: |
            - target: sanity-bbsim-att
              workflow: att
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-dt
              workflow: dt
              flags: ""
              teardown: true
              logging: true
            - target: sanity-bbsim-tt
              workflow: tt
              flags: ""
              teardown: true
              logging: true

- job-group:
    name: 'publish-bbsim-jobs'
    jobs:
      - 'docker-publish':
          maintainers: "releng+voltha-build@linuxfoundation.org"
          docker-repo: 'voltha'
          dependency-jobs: 'version-tag_wildcard'
      - 'github-release':
          dependency-jobs: 'version-tag_wildcard'
          github-organization: 'opencord'
          release-targets: 'release'
          artifact-glob: 'release/*'

# [EOF]
