Browse Source

Add makefile, run tests during package build

tags/2016.12
Filip Pytloun 8 years ago
parent
commit
35a3833fe0
5 changed files with 38 additions and 12 deletions
  1. +26
    -0
      Makefile
  2. +1
    -1
      debian/control
  3. +0
    -2
      debian/install
  4. +1
    -1
      linux/system/console.sls
  5. +10
    -8
      tests/run_tests.sh

+ 26
- 0
Makefile View File

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

+ 1
- 1
debian/control View File

Maintainer: Ales Komarek <ales.komarek@tcpcloud.eu> Maintainer: Ales Komarek <ales.komarek@tcpcloud.eu>
Section: admin Section: admin
Priority: optional Priority: optional
Build-Depends: debhelper (>= 9)
Build-Depends: debhelper (>= 9), salt-master, python, python-yaml
Standards-Version: 3.9.6 Standards-Version: 3.9.6
Homepage: http://www.tcpcloud.eu Homepage: http://www.tcpcloud.eu
Vcs-Browser: https://github.com/tcpcloud/salt-formula-linux Vcs-Browser: https://github.com/tcpcloud/salt-formula-linux

+ 0
- 2
debian/install View File

linux/* /usr/share/salt-formulas/env/linux/
metadata/service/* /usr/share/salt-formulas/reclass/service/linux/

+ 1
- 1
linux/system/console.sls View File



{%- for tty_name, console in system.console.iteritems() %} {%- for tty_name, console in system.console.iteritems() %}


{%- if grains['init'] == 'upstart' %}
{%- if grains.get('init', None) == 'upstart' %}
{{ tty_name }}_service_file: {{ tty_name }}_service_file:
file.managed: file.managed:
- name: /etc/init/{{ tty_name }}.conf - name: /etc/init/{{ tty_name }}.conf

+ 10
- 8
tests/run_tests.sh View File

base: base:
- ${SALT_FILE_DIR} - ${SALT_FILE_DIR}
- ${CURDIR}/.. - ${CURDIR}/..
- /usr/share/salt-formulas/env


pillar_roots: pillar_roots:
base: base:
} }


fetch_dependency() { 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" 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} [ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR}
git clone $1 ${DEPSDIR}/$(basename $1 .git) git clone $1 ${DEPSDIR}/$(basename $1 .git)

dep_name=$(cat $dep_metadata | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']")
ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name} ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name}


METADATA="${dep_metadata}" install_dependencies METADATA="${dep_metadata}" install_dependencies
(python - | while read dep; do fetch_dependency "$dep"; done) << EOF (python - | while read dep; do fetch_dependency "$dep"; done) << EOF
import sys,yaml import sys,yaml
for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']: for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']:
print dep["source"]
print '%s:%s' % (dep["name"], dep["source"])
EOF EOF
} }


} }


salt_run() { salt_run() {
source ${VENV_DIR}/bin/activate
[ -e ${VEN_DIR}/bin/activate ] && source ${VENV_DIR}/bin/activate
salt-call ${SALT_OPTS} $* salt-call ${SALT_OPTS} $*
} }


prepare() { prepare() {
[ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR} [ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR}


setup_virtualenv
which salt-call || setup_virtualenv
setup_pillar setup_pillar
setup_salt setup_salt
install_dependencies install_dependencies

Loading…
Cancel
Save