From 18f0929bf65c5ac583f433f6e458c06b2bc5b5a6 Mon Sep 17 00:00:00 2001 From: Filip Pytloun Date: Thu, 14 Apr 2016 11:51:09 +0200 Subject: [PATCH] Add makefile, run tests during package build Change-Id: Ia1ab078bfece11c63753432d66e96f10e4d04d0f --- Makefile | 26 ++++++++++++++++++++++++++ debian/control | 2 +- debian/install | 2 -- tests/run_tests.sh | 20 +++++++++++--------- 4 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 Makefile delete mode 100644 debian/install diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fc83783 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +DESTDIR=/ +SALTENVDIR=/usr/share/salt-formulas/env +RECLASSDIR=/usr/share/salt-formulas/reclass +FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-]*') + +all: + @echo "make install - Install into DESTDIR" + @echo "make test - Run tests" + @echo "make clean - Cleanup after tests run" + +install: + # Formula + [ -d $(DESTDIR)/$(SALTENVDIR) ] || mkdir -p $(DESTDIR)/$(SALTENVDIR) + cp -a $(FORMULANAME) $(DESTDIR)/$(SALTENVDIR)/ + [ ! -d _modules ] || cp -a _modules $(DESTDIR)/$(SALTENVDIR)/ + [ ! -d _states ] || cp -a _states $(DESTDIR)/$(SALTENVDIR)/ || true + # Metadata + [ -d $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) ] || mkdir -p $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) + cp -a metadata/service/* $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) + +test: + [ ! -d tests ] || (cd tests; ./run_tests.sh) + +clean: + [ ! -d tests/build ] || rm -rf tests/build + [ ! -d build ] || rm -rf build diff --git a/debian/control b/debian/control index d9c75cc..5e8693d 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: salt-formula-keystone Maintainer: Jakub Pavlik Section: admin Priority: optional -Build-Depends: debhelper (>= 9) +Build-Depends: salt-master, python, python-yaml, debhelper (>= 9) Standards-Version: 3.9.6 Homepage: https://wiki.openstack.org/wiki/OpenStackSalt Vcs-Browser: https://github.com/openstack/salt-formula-keystone diff --git a/debian/install b/debian/install deleted file mode 100644 index 934ed30..0000000 --- a/debian/install +++ /dev/null @@ -1,2 +0,0 @@ -keystone/* /usr/share/salt-formulas/env/keystone/ -metadata/service/* /usr/share/salt-formulas/reclass/service/keystone/ diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 1f1316f..3f42101 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -69,6 +69,7 @@ file_roots: base: - ${SALT_FILE_DIR} - ${CURDIR}/.. + - /usr/share/salt-formulas/env pillar_roots: base: @@ -78,16 +79,17 @@ EOF } fetch_dependency() { - dep_root="${DEPSDIR}/$(basename $1 .git)" + dep_name="$(echo $1|cut -d : -f 1)" + dep_source="$(echo $1|cut -d : -f 2-)" + dep_root="${DEPSDIR}/$(basename $dep_source .git)" dep_metadata="${dep_root}/metadata.yml" - [ -d $dep_root ] && log_info "Dependency $1 already fetched" && return 0 + [ -d /usr/share/salt-formulas/env/${dep_name} ] && log_info "Dependency $dep_name already present in system-wide salt env" && return 0 + [ -d $dep_root ] && log_info "Dependency $dep_name already fetched" && return 0 - log_info "Fetching dependency $1" + log_info "Fetching dependency $dep_name" [ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR} - git clone $1 ${DEPSDIR}/$(basename $1 .git) - - dep_name=$(cat $dep_metadata | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']") + git clone $dep_source ${DEPSDIR}/$(basename $dep_source .git) ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name} METADATA="${dep_metadata}" install_dependencies @@ -98,7 +100,7 @@ install_dependencies() { (python - | while read dep; do fetch_dependency "$dep"; done) << EOF import sys,yaml for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']: - print dep["source"] + print '%s:%s' % (dep["name"], dep["source"]) EOF } @@ -108,14 +110,14 @@ clean() { } salt_run() { - source ${VENV_DIR}/bin/activate + [ -e ${VEN_DIR}/bin/activate ] && source ${VENV_DIR}/bin/activate salt-call ${SALT_OPTS} $* } prepare() { [ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR} - setup_virtualenv + which salt-call || setup_virtualenv setup_pillar setup_salt install_dependencies