summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2018-12-12 13:57:18 +0100
committerGiuseppe Scrivano <gscrivan@redhat.com>2018-12-19 16:53:22 +0100
commit98c5d9d9624f82c5525558bf699642a929b229e4 (patch)
treec24dacc703c3a2024a5d02ca831f1343f195fd2e
parentc8eaf59d5f4bec249db8134c6a9fcfbcac792519 (diff)
downloadpodman-98c5d9d9624f82c5525558bf699642a929b229e4.tar.gz
podman-98c5d9d9624f82c5525558bf699642a929b229e4.tar.bz2
podman-98c5d9d9624f82c5525558bf699642a929b229e4.zip
Makefile: validate that each commit can at least build
it is very useful when using git bisect that at least the commit can build. got inspiration from: https://twitter.com/pid_eins/status/1072797993760423941 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r--.cirrus.yml23
-rw-r--r--Makefile5
2 files changed, 28 insertions, 0 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index f18e82653..75c9ac89e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -22,6 +22,7 @@ env:
# Save a little typing (path relative to $CIRRUS_WORKING_DIR)
SCRIPT_BASE: "./contrib/cirrus"
PACKER_BASE: "./contrib/cirrus/packer"
+ CIRRUS_CLONE_DEPTH: 200
####
#### Variables for composing new cache-images (used in PR testing) from
@@ -97,11 +98,33 @@ gating_task:
- '/usr/local/bin/entrypoint.sh lint'
+build_each_commit_task:
+
+ depends_on:
+ - "gating"
+
+ gce_instance:
+ image_project: "libpod-218412"
+ zone: "us-central1-a" # Required by Cirrus for the time being
+ cpu: 2
+ memory: "4Gb"
+ disk: 40
+ matrix:
+ image_name: "fedora-29-libpod-0c954a67"
+
+ timeout_in: 20m
+
+ script:
+ - $SCRIPT_BASE/setup_environment.sh
+ - git fetch --depth $CIRRUS_CLONE_DEPTH origin $CIRRUS_BASE_BRANCH
+ - env GOPATH=/var/tmp/go/ make build-all-new-commits GIT_BASE_BRANCH=origin/$CIRRUS_BASE_BRANCH
+
# This task does the unit and integration testing for every platform
testing_task:
depends_on:
- "gating"
+ - "build_each_commit"
gce_instance:
image_project: "libpod-218412"
diff --git a/Makefile b/Makefile
index 250226cf0..1f24e32ea 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,7 @@ HEAD ?= HEAD
CHANGELOG_BASE ?= HEAD~
CHANGELOG_TARGET ?= HEAD
PROJECT := github.com/containers/libpod
+GIT_BASE_BRANCH ?= origin/master
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
GIT_BRANCH_CLEAN ?= $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
LIBPOD_IMAGE ?= libpod_dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
@@ -345,6 +346,10 @@ API.md: cmd/podman/varlink/io.podman.varlink
validate: gofmt .gitvalidation
+build-all-new-commits:
+ # Validate that all the commits build on top of $(GIT_BASE_BRANCH)
+ git rebase $(GIT_BASE_BRANCH) -x make
+
.PHONY: \
.gopathok \
binaries \