summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Evich <cevich@redhat.com>2018-10-08 09:40:31 -0400
committerChris Evich <cevich@redhat.com>2018-10-31 09:48:31 -0400
commit91f398db4c92056bc77c1c82fe9a61e2c8739e8d (patch)
treed4cd96c2aed411117902942fa3c5f249ea0c3ff9
parent02eec644f1ed0c3620859fe714139f3354bdd591 (diff)
downloadpodman-91f398db4c92056bc77c1c82fe9a61e2c8739e8d.tar.gz
podman-91f398db4c92056bc77c1c82fe9a61e2c8739e8d.tar.bz2
podman-91f398db4c92056bc77c1c82fe9a61e2c8739e8d.zip
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>
-rwxr-xr-xcontrib/cirrus/build_vm_images.sh4
-rw-r--r--contrib/cirrus/lib.sh34
2 files changed, 26 insertions, 12 deletions
diff --git a/contrib/cirrus/build_vm_images.sh b/contrib/cirrus/build_vm_images.sh
index 80c689a6c..ffbb2d5d5 100755
--- a/contrib/cirrus/build_vm_images.sh
+++ b/contrib/cirrus/build_vm_images.sh
@@ -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
diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh
index 1e0052a65..12d24042f 100644
--- a/contrib/cirrus/lib.sh
+++ b/contrib/cirrus/lib.sh
@@ -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() {
@@ -142,8 +158,8 @@ EOF
install_cni_plugins() {
echo "Installing CNI Plugins from commit $CNI_COMMIT"
req_env_var "
- GOPATH $GOPATH
- CNI_COMMIT $CNI_COMMIT
+ GOPATH $GOPATH
+ CNI_COMMIT $CNI_COMMIT
"
DEST="$GOPATH/src/github.com/containernetworking/plugins"
rm -rf "$DEST"
@@ -160,9 +176,9 @@ install_runc(){
echo "Installing RunC from commit $RUNC_COMMIT"
echo "Platform is $OS_RELEASE_ID"
req_env_var "
- GOPATH $GOPATH
- RUNC_COMMIT $RUNC_COMMIT
- OS_RELEASE_ID $OS_RELEASE_ID
+ GOPATH $GOPATH
+ RUNC_COMMIT $RUNC_COMMIT
+ OS_RELEASE_ID $OS_RELEASE_ID
"
if [[ "$OS_RELEASE_ID" =~ "ubuntu" ]]; then
echo "Running make install.libseccomp.sudo for ubuntu"
@@ -202,8 +218,8 @@ install_buildah() {
install_conmon(){
echo "Installing conmon from commit $CRIO_COMMIT"
req_env_var "
- GOPATH $GOPATH
- CRIO_COMMIT $CRIO_COMMIT
+ GOPATH $GOPATH
+ CRIO_COMMIT $CRIO_COMMIT
"
DEST="$GOPATH/src/github.com/kubernetes-sigs/cri-o.git"
rm -rf "$DEST"
@@ -234,8 +250,8 @@ install_criu(){
install_testing_dependencies() {
echo "Installing ginkgo, gomega, and easyjson into \$GOPATH=$GOPATH"
req_env_var "
- GOPATH $GOPATH
- GOSRC $GOSRC
+ GOPATH $GOPATH
+ GOSRC $GOSRC
"
cd "$GOSRC"
ooe.sh go get -u github.com/onsi/ginkgo/ginkgo