# ============LICENSE_START=======================================================
#  Copyright (C) 2019 Nordix Foundation.
# ================================================================================
# 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-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
---
- project:
    name: 'uds-daily-build-package-promote'
    projects: 'onap/sdc, local/onap/uds/sdc-customization'
    project-name:
      - uds
    branches: 20.2, master
    project_directories: sdc, sdc-customization
    project_versions:
    mvn_settings_xml_version:
    docker_images: '
      uds/sdc-cassandra-init,
      uds/sdc-backend-init,
      uds/sdc-be-plugin/etsi-nfv-nsd-csar,
      uds/sdc-be-plugin/vf-csar,
      uds/sdc-customization/eo-sdc-backend-init,
      uds/sdc-customization/eo-cassandra-init,
      uds/sdc-backend,
      uds/sdc-onboard-backend,
      uds/sdc-frontend,
      uds/sdc-cassandra,
      uds/sdc-simulator
    '
    docker_image_artifact_directory: $WORKSPACE/artifacts/images
    artifactory_docker_images_path: onap/uds/images
    artifact_paths: 'sdc/catalog-be/target/catalog-be-*.war'
    artifactory_artifact_path: onap/uds
    artifact_directory: $WORKSPACE/artifacts/artifacts
    artifactory_repo_archive_path: onap/uds/releases
    repo_archive_artifact_directory: $WORKSPACE/artifacts/repos
    grep_parameters: -oP (?<=uds.version>)[^<]+
    archive_name: uds
    pom_location: sdc/pom.xml
    workspace: /home/jenkins/nordix/slave_root/workspace/
    node: onap-uds-build-ubuntu1804

    jobs:
      - '{project-name}-daily-build-package-promote'
      - '{project-name}-build'
      - '{project-name}-package-artifacts'
      - '{project-name}-package-images'
      - '{project-name}-package-repositories'
      - '{project-name}-promote-artifacts'
      - '{project-name}-promote-images'
      - '{project-name}-promote-repositories'


- job-template:
    name: '{project-name}-daily-build-package-promote'
    description: 'Job for building, packing and pushing UDS artifacts including sources, docker images and other arifacts to Artifactory'
    project-type: 'multijob'
    workspace: '{workspace}'
    node: '{node}'
    parameters:
      - multi-project-parameters:
          projects: '{projects}'
          branches: '{branches}'
          project_directories: '{project_directories}'
          project_versions: '{project_versions}'
      - git-parameters
      - maven-parameters:
          mvn_settings_xml_version: '{mvn_settings_xml_version}'
      - artifact_parameters:
          artifact_paths: '{artifact_paths}'
          artifactory_artifact_path: '{artifactory_artifact_path}'
          artifact_directory: '{artifact_directory}'
      - artifactory-parameters
      - docker-archive-parameters:
          docker_images: '{docker_images}'
          artifactory_docker_images_path: '{artifactory_docker_images_path}'
          docker_image_artifact_directory: '{docker_image_artifact_directory}'
      - repo-archive-parameters:
          grep_parameters: '{grep_parameters}'
          pom_location: '{pom_location}'
          archive_name: '{archive_name}'
          artifactory_repo_archive_path: '{artifactory_repo_archive_path}'
          repo_archive_artifact_directory: '{repo_archive_artifact_directory}'

    builders:
      - 'pull-source-repositories'
      - 'generate-build-metadata'
      - multijob:
          name: Build
          condition: SUCCESSFUL
          projects:
            - name: '{project-name}-build'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
      - multijob:
          name: Package
          condition: SUCCESSFUL
          execution-type: SEQUENTIALLY
          projects:
            - name: '{project-name}-package-artifacts'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
            - name: '{project-name}-package-images'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
            - name: '{project-name}-package-repositories'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
      - multijob:
          name: Promote
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: '{project-name}-promote-artifacts'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
            - name: '{project-name}-promote-images'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
            - name: '{project-name}-promote-repositories'
              current-parameters: true
              node-parameters: true
              abort-all-job: false
              kill-phase-on: FAILURE
              property-file: $WORKSPACE/build.properties
    triggers:
      - timed: "@midnight"
    wrappers:
      - openstack:
          single-use: True
      - credentials-binding:
        - username-password-separated:
            credential-id: infra-nordix-artifactory-api-key
            username: ARTIFACTORY_USER
            password: ARTIFACTORY_API_KEY

- job-template:
    name: '{project-name}-build'
    description: 'Job for building out uds repositories'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'maven-build-repositories'


- job-template:
    name: '{project-name}-package-artifacts'
    description: 'Job for archiving uds artifacts (.war, .jar files etc.)'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'collect-file-artifacts'


- job-template:
    name: '{project-name}-package-images'
    description: 'Job for archiving uds docker images'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'package-docker-images'


- job-template:
    name: '{project-name}-package-repositories'
    description: 'Job for archiving uds source repos (sdc, sdc-customization)'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'maven-clean-repositories'
      - 'package-source-repositories'


- job-template:
    name: '{project-name}-promote-artifacts'
    description: 'Job for pushing uds file artifacts (.war, .jar files etc.) to Artifactory'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'promote-file-artifacts-to-artifactory'

- job-template:
    name: '{project-name}-promote-images'
    description: 'Job for pushing uds docker images to Artifactory'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'promote-docker-images-to-artifactory'

- job-template:
    name: '{project-name}-promote-repositories'
    description: 'Job for pushing uds source repositories (sdc, sdc-customization) to Artifactory'
    workspace: '{workspace}'
    node: '{node}'

    builders:
      - 'promote-source-repositories-to-artifactory'
