Martin Roth has uploaded a new change for review. ( https://review.coreboot.org/19035 )
Change subject: Build system: Make jenkins target to check for changes ......................................................................
Build system: Make jenkins target to check for changes
-add --timeless argument to what-jenkins-does builds -add jenkins-compare-last makefile target that checks out the previous commit and rebuilds all platforms, then compares the checksums of all of the platforms looking for anything that's changed.
Change-Id: Ie603f80c6f2b2a656df22b4a569a0f82a1237636 Signed-off-by: Martin Roth gaumless@gmail.com --- M Makefile M Makefile.inc 2 files changed, 21 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/35/19035/1
diff --git a/Makefile b/Makefile index 701a146..cd85475 100644 --- a/Makefile +++ b/Makefile @@ -113,7 +113,7 @@ NOCOMPILE:=1 endif ifneq ($(MAKECMDGOALS),) -ifneq ($(filter %config %clean cross% clang iasl gnumake lint% help% what-jenkins-does,$(MAKECMDGOALS)),) +ifneq ($(filter %config %clean cross% clang iasl gnumake lint% help% what-jenkins-does jenkins-compare-last,$(MAKECMDGOALS)),) NOCOMPILE:=1 endif ifeq ($(MAKECMDGOALS), %clean) diff --git a/Makefile.inc b/Makefile.inc index 5ab3524..2f77d7d 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -1055,10 +1055,28 @@ CPUS?=4 what-jenkins-does: util/lint/lint lint-stable --junit - util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) -x -X $(top)/abuild-chromeos.xml - util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) + util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) -x -X $(top)/abuild-chromeos.xml -o coreboot-builds-chromeos --timeless + util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) --timeless (cd payloads/libpayload; unset COREBOOT_BUILD_DIR; $(MAKE) $(if $(JENKINS_NOCCACHE),,CONFIG_LP_CCACHE=y) V=$(V) Q=$(Q) junit.xml) $(foreach tool, $(TOOLLIST), $(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=util/ BLD="$(tool)" MFLAGS= MAKEFLAGS= MAKETARGET= junit.xml; ) $(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=payloads/ BLD=nvramcui MFLAGS= MAKEFLAGS= MAKETARGET=all junit.xml $(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=payloads/ BLD=coreinfo MFLAGS= MAKEFLAGS= MAKETARGET=defaultbuild junit.xml $(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=util/ BLD=romcc MFLAGS= MAKEFLAGS= MAKETARGET=test junit.xml + +jenkins-compare-last: GIT=$(shell [ -e "$(top)/.git" ] && command -v git) +jenkins-compare-last: GITCOMMIT=$(shell if [ -n "$(GIT)" ]; then $(GIT) log HEAD --format="%h" -n 1; fi ) +jenkins-compare-last: what-jenkins-does + if [ -z "$(GITCOMMIT)" ]; then \ + echo "Error: Could not get previous commit to compare."; false; \ + fi + echo "********** BUILDING PARENT COMMIT **********" + $(GIT) checkout HEAD^ + util/abuild/abuild -B $(if $(JENKINS_NOCCACHE),,-y) -z -c $(CPUS) -p $(JENKINS_PAYLOAD) -x -o coreboot-builds-chromeos --timeless + util/abuild/abuild -B $(if $(JENKINS_NOCCACHE),,-y) -z -c $(CPUS) -p $(JENKINS_PAYLOAD) --timeless + $(GIT) checkout $(GITCOMMIT) + echo "********** Finished Building Parent Commit **********" + DIFFS="$$(sort coreboot-builds-chromeos/platform_checksums | uniq -c | grep -v '^ *2 ' | sed 's/.*coreboot-/coreboot-/' | sort | uniq; \ + sort coreboot-builds/platform_checksums | uniq -c | grep -v '^ *2' | sed 's/.*coreboot-/coreboot-/' | sort | uniq )" + if [ -z "$$DIFFS" ]; then echo "All platforms unchanged"; \ + else echo "Platforms with differences:"; echo "$$DIFFS"; \ + fi