summaryrefslogtreecommitdiffstats
path: root/jjb/infra/bifrost-cleanup-job.yml
blob: 2f7d9737b4d3b8b9baca10d944f32b79fe2ff540 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
- 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
            # No force (-f). We always verify upstream jobs so if there are no logs
            # something else went wrong and we need to break immediately and investigate
            gsutil rm -r $BIFROST_GS_URL

    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:
                - patchset-created-event:
                    exclude-drafts: 'false'
                    exclude-trivial-rebase: 'false'
                    exclude-no-code-change: 'false'
                - patchset-uploaded-event: 'false'
                # We only run this when the change is merged since
                # we don't need the logs anymore
                - change-merged-event: 'true'
                - change-restored-event: 'false'
                - draft-published-event: 'false'
                # We need this in order to be able to trigger a cleanup
                # from Gerrit should it be necessary
                - comment-added-contains-event:
                    comment-contains-value: 'recheck'
            # 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}'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'doc/**'
                  - compare-type: ANT
                    pattern: 'releasenotes/**'
            readable-message: true
- trigger:
    name: 'opnfv-gerrit-trigger-cleanup'
    triggers:
        - gerrit:
            server-name: 'gerrit.opnfv.org'
            trigger-on:
                - patchset-created-event:
                    exclude-drafts: 'false'
                    exclude-trivial-rebase: 'false'
                    exclude-no-code-change: 'false'
                - patchset-uploaded-event: 'false'
                # We only run this when the change is merged since
                # we don't need the logs anymore
                - change-merged-event: 'true'
                - change-restored-event: 'false'
                - draft-published-event: 'false'
                # We need this in order to be able to trigger a cleanup
                # from Gerrit should it be necessary
                - comment-added-contains-event:
                    comment-contains-value: 'recheck'
                - comment-added-contains-event:
                    comment-contains-value: 'reverify'
            # 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/**'
                  - compare-type: ANT
                    pattern: 'jjb/infra/**'
            readable-message: true