summaryrefslogtreecommitdiffstats
path: root/jjb/xci/bifrost-cleanup-job.yml
blob: d517761739d6ad606e89c2736529bdaedb83402b (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
---
- 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-xci'
          clone-location: '/opt/releng-xci'

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

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

    disabled: true
    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:
      # yamllint disable rule:line-length
      - email:
          recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn
      # yamllint enable rule:line-length
      - email-jenkins-admins-on-failure
# -------------------------------
# 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/**'
          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-xci'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
              file-paths:
                - compare-type: ANT
                  pattern: 'bifrost/**'
          readable-message: true