Cirrus: Skip rebuilding images unless instructed

Given frequent merges, it doesn't make sense to rebuild the VM testing
images every time.  Instead, monitor the PR title and description for
a magic string, only triggering builds on a match:

***CIRRUS: REBUILD IMAGES***

Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
Chris Evich
2018-10-08 09:40:31 -04:00
parent 02eec644f1
commit 91f398db4c
2 changed files with 26 additions and 12 deletions

View File

@ -22,9 +22,7 @@ SCRIPT_BASE $SCRIPT_BASE
PACKER_BASE $PACKER_BASE
"
# TODO: Skip building images if $CIRRUS_BRANCH =~ "master" and
# commit message of $CIRRUS_CHANGE_IN_REPO contains a magic word
# produced by 'commit_and_create_upstream_pr.sh' script (see .cirrus.yml)
require_regex '\*\*\*\s*CIRRUS:\s*REBUILD\s*IMAGES\s*\*\*\*' 'Not re-building VM images'
show_env_vars

View File

@ -117,6 +117,22 @@ cdsudo() {
sudo --preserve-env=GOPATH --non-interactive bash -c "$CMD"
}
# Skip a build if $1 does not match in the PR Title/Description with message $2
require_regex() {
req_env_var "
CIRRUS_CHANGE_MESSAGE $CIRRUS_CHANGE_MESSAGE
1 $1
2 $2
"
regex="$1"
msg="$2"
if ! echo "$CIRRUS_CHANGE_MESSAGE" | egrep -q "$regex"
then
echo "***** The PR Title/Description did not match the regular expression: $MAGIC_RE"
echo "***** $msg"
exit 0
fi
}
# Helper/wrapper script to only show stderr/stdout on non-zero exit
install_ooe() {