---
# versioning jobs for tagging/releasing software

# Versioning conventions:
#
# 1. There is a 1:1 relationship between SemVer _release_ versions described
#    in the commit and the git tag applied to that commit by Jenkins.
#
# 2. Non-release versions (ex: 1.0.1-dev3, etc.) can exist in multiple
#    commits, and don't trigger creation of git tags.
#
# 3. Git history is public, and therefore shouldn't be rewritten to abandon
#    already merged commits
#
# 4. Reverting a commit leaves it in history, so if a broken version is
#    released, the correct action is to make a new fixed version, not try to
#    fix the released version
#
# For reference: https://jira.opencord.org/browse/CORD-3117

- job-template:
    id: tag-check
    name: "tag-check_{project}"
    description: |
      Created by {id} job-template from ci-management/jjb/templates/versioning.yaml
      Checks for changes to version files, and that they don't duplicate tags
      already in the git repo.
    disabled: '{disable-job}'

    triggers:
      - onf-infra-gerrit-trigger-patchset:
          gerrit-server-name: '{gerrit-server-name}'
          project-regexp: '^{project}$'
          branch-regexp: '{branch-regexp}'
          file-include-regexp: '{all-files-regexp}'
          dependency-jobs: '{dependency-jobs}'

    properties:
      - onf-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
          artifact-num-to-keep: '{artifact-num-to-keep}'

    wrappers:
      - lf-infra-wrappers:
          build-timeout: '{build-timeout}'
          jenkins-ssh-credential: '{gerrit-ssh-credential}'

    scm:
      - lf-infra-gerrit-scm:
          git-url: '$GIT_URL/$GERRIT_PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-disable: '{submodule-disable}'
          submodule-recursive: '{submodule-recursive}'
          submodule-timeout: '{submodule-timeout}'
          choosing-strategy: gerrit
          jenkins-ssh-credential: '{gerrit-ssh-credential}'

    node: '{build-node}'
    project-type: freestyle
    concurrent: true

    builders:
      - inject:
          properties-content:
            SEMVER_STRICT={semver-strict}
      - shell: !include-raw-escape: ../shell/tag-check.sh


- job-template:
    id: version-tag
    name: "version-tag_{project}"
    description: |
      Created by {id} job-template from ci-management/jjb/templates/versioning.yaml
      When a patch is merged, check if it contains a SemVer released version
      file and if so tags the commit in git with that same version.
    disabled: '{disable-job}'

    triggers:
      - onf-infra-gerrit-trigger-merge:
          gerrit-server-name: '{gerrit-server-name}'
          project-regexp: '^{project}$'
          branch-regexp: '{branch-regexp}'
          file-include-regexp: '{all-files-regexp}'
          dependency-jobs: '{dependency-jobs}'

    properties:
      - onf-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
          artifact-num-to-keep: '{artifact-num-to-keep}'

    wrappers:
      - lf-infra-wrappers:
          build-timeout: '{build-timeout}'
          jenkins-ssh-credential: '{gerrit-ssh-credential}'

    scm:
      - lf-infra-gerrit-scm:
          git-url: '$GIT_URL/$GERRIT_PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-disable: '{submodule-disable}'
          submodule-recursive: '{submodule-recursive}'
          submodule-timeout: '{submodule-timeout}'
          choosing-strategy: gerrit
          jenkins-ssh-credential: '{gerrit-ssh-credential}'

    node: '{build-node}'
    project-type: freestyle
    concurrent: true

    builders:
      - inject:
          properties-content:
            SEMVER_STRICT={semver-strict}
      - shell: !include-raw-escape: ../shell/version-tag.sh

