---
# CORD GLOBAL jenkins job builder (JJB) defaults

- defaults:
    name: global

    # lftools
    lftools-version: <1.0.0

    # name of the SSH key to use in most cases
    jenkins-ssh-credential: 'cord-jenkins-ssh'
    gerrit-ssh-credential: 'gerrit-jenkins-user'

    # by default, don't depend on other jobs
    dependency-jobs: ''

    # SCM checkout locations within Jenkins Workspace
    destination-dir: ''
    basedir: ''

    # used to rename jobs if version/branch forking is required
    name-extension: ''

    # How long to keep builds and artifacts
    build-days-to-keep: 60
    artifact-num-to-keep: 30

    # list of artifacts to archive
    archive-artifacts: ''

    # build timeout (minutes)
    build-timeout: 10

    # timed trigger defaults, crontab syntax
    # H = random value hashed by name of job
    every-hour: "H * * * *"
    every-four-hours: "H */4 * * *"
    every-six-hours: "H */6 * * *"
    every-eight-hours: "H */8 * * *"
    twice-a-day: "H */12 * * *"
    once-a-day: "H 0 * * *"

    # The most frequently used type of build node
    # see other build node types under "Cloud > Amazon EC2" at
    #  https://jenkins.opencord.org/configure
    build-node: ubuntu16.04-basebuild-1c-1g

    # CORD Gerrit server definition, set in configuration
    gerrit-server-name: 'CORD Gerrit'

    # URL for Gerrit server, for use with `repo`
    gerrit-server-url: 'https://gerrit.opencord.org'

    # name of the manifest git repos used with the `repo` cli tool
    cord-repo-manifest: manifest.git
    cordqa-manifest-repo: qa-manifest.git

    # default email address to send job failure messages
    failure-email-address: 'cord-dev@opencord.org'

    # Projects containing helm-charts
    helm-charts-projects-regexp: '^(helm-charts|cord-platform|seba)$'

    # regexp for gerrit triggers
    # list of supported branches, for branch-regexp
    all-branches-regexp: '.*'
    supported-branches-regexp: '^(master|cord-6.1|seba-1.0|cord-6.0|cord-5.0|cord-4.1|cord-4.0)$'
    legacy-branches-regexp: '^(cord-5.0|cord-4.1|cord-4.0)$'
    modern-branches-regexp: '^(master|cord-6.0|cord-6.1|seba-1.0)$'
    platform-branches-regexp: '^(master|cord-6.1)$'
    seba-branches-regexp: '^(master|seba-1.0)$'

    # for matching repos that build docker images with imagebuilder
    # As of 2019-04-16 most of the services actively being developed use the
    # make-based image generation process managed by the `docker-publish` job
    imagebuilder-projects-regexp: '^(cord-tester|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|globalxos|hippie-oss|hss_db|hypercache|internetemulator|monitoring|openstack|progran|sdn-controller|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr)$'

    # strictness of version checks
    semver-strict: 0

    # matching repos that should be version tagged by the version-tag job
    # (basically the same as imagebuilder projects + helm charts + tools
    version-tag-projects-regexp: '^(xos.*|helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric|fabric-crossconnect|globalxos|hippie-oss|hss_db|hypercache|internetemulator|kubernetes-service|monitoring|olt-service|onos-service|openstack|progran|sdn-controller|simpleexampleservice|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vrouter|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr|att-workflow-driver|tt-workflow-driver|ves-agent|voltha-bbsim|openolt|sadis-server|kafka-topic-exporter|pyvoltha|voltha-adtran-adapter|voltha-openolt-adapter|voltha-openonu-adapter|plyxproto|voltha-protos|alpine-grpc-base)$'

    # PyPI related publishing variables
    #
    # Pipe-separated list of directories relative to $WORKSPACE containing
    # python modules to publish to PyPI. Default is current directory which is
    # correct for simple modules
    pypi-module-dirs: '.'

    # Which PyPI index to use. Corresponds to values in ~/.pypirc
    # 'pypi' and 'testpypi' are current options. Default to testpypi, override
    # in the job once testing is completed
    pypi-index: 'testpypi'

    # Commands to run within the root of the checked out repo before running
    # the `python setup.py sdist` to generate the distribution.
    # Primarily used for autogenerating code before publishing a repo
    pypi-prep-commands: ''

    # Name of the Docker repository (usually on DockerHub) that is the
    # destination for images to be pushed to after building.
    # Default is invalid - must be specified on every job.
    docker-repo: 'default-and-invalid'

    # URL of the Docker registry (server running a docker registry) that is the
    # destination for images to be pushed to after building. If set, must
    # include trailing slash as a separator before the repo name.
    # Default is blank, which maps to DockerHub.
    docker-registry: ''

    # for matching files with file-include-regexp
    all-files-regexp: '.*'
    doc-files-regexp: '^docs/.*'

    # regex to allow docs-only patchsets w/version bumps to skip code-level
    # tests.  Have to also ignore the commit message on negative match,
    # per: https://issues.jenkins-ci.org/browse/JENKINS-19891
    code-files-regexp: '^(?!docs|VERSION|\/COMMIT_MSG).*$'
    api-test-files-regexp: '^(?!docs|VERSION|\/COMMIT_MSG|Jenkinsfile-*).*$'

      # Jenkins SSH host doc publisher
    docs-ssh-host: 'guide.opencord.org'
    docs-ssh-host-key: 'guide.opencord.org,52.9.82.207 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFHwOY3/8GucdKzBngH/FC08nHac/RJ/OheZp2+5EpOPXZG9zQW2YUbXH5A9pO76lI5CG3z3+huG62xEGo99UQU='

    # For running Sonarqube configuration - see sonar.yaml for more info
    sonar-prep-commands: ''
    sonar-java-binaries: ''

    # siab helm-charts
    siab-projects-regexp: '^(xos-core/.*|xos-profiles/seba-services/.*|xos-profiles/base-kubernetes/.*|workflows/att-workflow/.*|voltha/.*|onos/.*|mininet/.*)$'

    # Optionally allow JUnit results to be empty when test framework is set up,
    # but no tests exist. Default behavior is to fail when test results are empty.
    junit-allow-empty-results: false
