[Dev] [dbscripts] [PATCH 5/6] Cache already built packages
Luke Shumaker
lukeshu at lukeshu.com
Tue Apr 3 20:10:58 GMT 2018
From: Pierre Schmitz <pierre at archlinux.de>
(cherry picked from commit 59d495b55f52253518fe1a184627e7259034f978)
---
test/Makefile | 6 ++++--
test/lib/common.bash | 25 +++++++++++++++++++------
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/test/Makefile b/test/Makefile
index d9437bf..5ed3910 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,8 +1,10 @@
+PACKAGE_CACHE:=$(shell mktemp -d)
+
test:
- PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) bats cases
+ PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases
test-coverage:
- PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) kcov \
+ PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) kcov \
--include-path=$(CURDIR)/../ \
--exclude-path=$(CURDIR)/../test,$(CURDIR)/../cron-jobs/makepkg.conf,$(CURDIR)/../config \
$(COVERAGE_DIR) \
diff --git a/test/lib/common.bash b/test/lib/common.bash
index c61c948..7704098 100644
--- a/test/lib/common.bash
+++ b/test/lib/common.bash
@@ -8,22 +8,30 @@ die() {
exit 1
}
+__getCheckSum() {
+ local result=($(sha1sum $1))
+ echo ${result[0]}
+}
+
__buildPackage() {
local arch=$1
local pkgver
local pkgname
local a
local p
+ local checkSum
+
+ if [[ -n ${PACKAGE_CACHE} ]]; then
+ checkSum=$(__getCheckSum PKGBUILD)
+ # TODO: Be more specific
+ if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then
+ return 0
+ fi
+ fi
pkgname=($(. PKGBUILD; echo "${pkgname[@]}"))
pkgver=$(. PKGBUILD; get_full_version)
- for p in "${pkgname[@]}"; do
- if [ -f "${p}-${pkgver}-${arch}"${PKGEXT} ]; then
- return 0
- fi
- done
-
if [ "${arch}" == 'any' ]; then
sudo librechroot -n "dbscripts@${arch}" make
else
@@ -36,6 +44,11 @@ __buildPackage() {
gpg --detach-sign --no-armor --use-agent "$file"
done
done
+
+ if [[ -n ${PACKAGE_CACHE} ]]; then
+ mkdir -p ${PACKAGE_CACHE}/${checkSum}
+ cp -av *-${arch}${PKGEXT}{,.sig} ${PACKAGE_CACHE}/${checkSum}/
+ fi
}
setup() {
--
2.16.2
More information about the Dev
mailing list