summaryrefslogtreecommitdiffstats
path: root/jjb/infra
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2017-01-23 22:53:55 +0000
committerMarkos Chandras <mchandras@suse.de>2017-02-13 11:41:46 +0000
commit4704737d7cc2d4444c6864c9f663cd82a03e40e7 (patch)
tree3836914675b957c9f59afbd0000b73e7f83eed38 /jjb/infra
parent387c212e28b6050a74affbb787c9525e6337ce08 (diff)
jjb: infra: bifrost-cleanup-job.yml: Add new bifrost cleanup job
Add new job which will wipe the build logs from artifacts.opnfv.org once the proposed gerrit patchset is merged. This job is only triggered when a patchset is accepted and it can be executed on any of the bifrost slaves provided none of the bifrost-verify-* jobs is running. Change-Id: Ice708b978fbf283d5134f5cf7f7e1e541ec61003 Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'jjb/infra')
-rw-r--r--jjb/infra/bifrost-cleanup-job.yml156
1 files changed, 156 insertions, 0 deletions
diff --git a/jjb/infra/bifrost-cleanup-job.yml b/jjb/infra/bifrost-cleanup-job.yml
new file mode 100644
index 000000000..2f7d9737b
--- /dev/null
+++ b/jjb/infra/bifrost-cleanup-job.yml
@@ -0,0 +1,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