- project:
    name: 'openstack-bifrost-cleanup'
#--------------------------------
# branches
#--------------------------------
    stream:
        - master:
            branch: '{stream}'

#--------------------------------
# projects
#--------------------------------
    project:
        - 'openstack':
            project-repo: 'https://git.openstack.org/openstack/bifrost'
            clone-location: '/opt/bifrost'
        - 'opnfv':
            project-repo: 'https://gerrit.opnfv.org/gerrit/releng'
            clone-location: '/opt/releng'

#--------------------------------
# jobs
#--------------------------------
    jobs:
        - '{project}-bifrost-cleanup-{stream}'

- job-template:
    name: '{project}-bifrost-cleanup-{stream}'

    concurrent: false

    node: bifrost-verify-virtual

    # Make sure no verify job is running on any of the slaves since that would
    # produce build logs after we wipe the destination directory.
    properties:
        - build-blocker:
            blocking-jobs:
                - '{project}-bifrost-verify-*'

    parameters:
        - string:
            name: PROJECT
            default: '{project}'

    builders:
        - shell: |
            #!/bin/bash

            set -eu

            # DO NOT change this unless you know what you are doing.
            BIFROST_GS_URL="gs://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/"

            # This should never happen... even 'recheck' uses the last jobs'
            # gerrit information. Better exit with error so we can investigate
            [[ ! -n $GERRIT_NAME ]] || [[ ! -n $GERRIT_CHANGE_NUMBER ]] && exit 1

            echo "Removing build artifacts for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER"

            if ! [[ "$BIFROST_GS_URL" =~ "/cross-community-ci/openstack/bifrost/" ]]; then
                echo "Oops! BIFROST_GS_URL=$BIFROST_GS_URL does not seem like a valid"
                echo "bifrost location on the Google storage server. Please double-check"
                echo "that it's set properly or fix this line if necessary."
                echo "gsutil will not be executed until this is fixed!"
                exit 1
            fi
            try_to_rm=1
            while [[ $try_to_rm -lt 6 ]]; do
                gsutil -m rm -r $BIFROST_GS_URL && _exitcode=$? && break
                _exitcode=$?
                echo "gsutil rm failed! Trying again... (attempt #$try_to_rm)"
                let try_to_rm += 1
                # Give it some time...
                sleep 10
            done
            exit $_exitcode

    triggers:
        - '{project}-gerrit-trigger-cleanup':
            branch: '{branch}'

    publishers:
        - email:
            recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn
#--------------------------------
# trigger macros
#--------------------------------
- trigger:
    name: 'openstack-gerrit-trigger-cleanup'
    triggers:
        - gerrit:
            server-name: 'review.openstack.org'
            escape-quotes: true
            trigger-on:
                # We only run this when the change is merged or
                # abandoned since we don't need the logs anymore
                - change-merged-event
                - change-abandoned-event
            # This is an OPNFV maintenance job. We don't want to provide
            # feedback on Gerrit
            silent: true
            silent-start: true
            projects:
              - project-compare-type: 'PLAIN'
                project-pattern: 'openstack/bifrost'
                branches:
                  - branch-compare-type: 'ANT'
                    branch-pattern: '**/{branch}'
                disable-strict-forbidden-file-verification: 'true'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'doc/**'
                  - compare-type: ANT
                    pattern: 'releasenotes/**'
                disable-strict-forbidden-file-verification: 'true'
            readable-message: true
- trigger:
    name: 'opnfv-gerrit-trigger-cleanup'
    triggers:
        - gerrit:
            server-name: 'gerrit.opnfv.org'
            trigger-on:
                # We only run this when the change is merged or
                # abandoned since we don't need the logs anymore
                - change-merged-event
                - change-abandoned-event
            # This is an OPNFV maintenance job. We don't want to provide
            # feedback on Gerrit
            silent: true
            silent-start: true
            projects:
              - project-compare-type: 'ANT'
                project-pattern: 'releng'
                branches:
                  - branch-compare-type: 'ANT'
                    branch-pattern: '**/{branch}'
                file-paths:
                  - compare-type: ANT
                    pattern: 'prototypes/bifrost/**'
            readable-message: true