lorax/Makefile

114 lines
3.7 KiB
Makefile
Raw Normal View History

2013-07-24 20:41:03 +00:00
PYTHON ?= /usr/bin/python
2010-12-08 13:16:13 +00:00
DESTDIR ?= /
2018-12-12 11:38:09 +00:00
DOCKER ?= docker
PKGNAME = lorax-composer
2010-12-02 12:36:22 +00:00
VERSION = $(shell awk '/Version:/ { print $$2 }' $(PKGNAME).spec)
RELEASE = $(shell awk '/Release:/ { print $$2 }' $(PKGNAME).spec | sed -e 's|%.*$$||g')
2013-02-28 19:53:34 +00:00
TAG = lorax-$(VERSION)-$(RELEASE)
2010-12-02 12:36:22 +00:00
2018-12-12 11:38:09 +00:00
IMAGE_RELEASE = $(shell awk -F: '/FROM/ { print $$2}' Dockerfile.test)
2010-12-02 12:36:22 +00:00
default: all
2018-06-19 16:37:18 +00:00
src/composer/version.py:
echo "num = '$(VERSION)-$(RELEASE)'" > src/composer/version.py
2018-06-19 16:37:18 +00:00
src/pylorax/version.py:
echo "num = '$(VERSION)-$(RELEASE)'" > src/pylorax/version.py
src/pylorax/api/version.py:
echo "num = '$(VERSION)-$(RELEASE)'" > src/pylorax/api/version.py
all: src/pylorax/version.py src/pylorax/api/version.py src/composer/version.py
$(PYTHON) setup.py build
2010-12-02 12:36:22 +00:00
install: all
$(PYTHON) setup.py install --root=$(DESTDIR)
2013-07-26 22:01:14 +00:00
mkdir -p $(DESTDIR)/$(mandir)/man1
install -m 644 docs/man/lorax.1 $(DESTDIR)/$(mandir)/man1
install -m 644 docs/man/livemedia-creator.1 $(DESTDIR)/$(mandir)/man1
mkdir -p $(DESTDIR)/etc/bash_completion.d
install -m 644 etc/bash_completion.d/composer-cli $(DESTDIR)/etc/bash_completion.d
check:
@echo "*** Running pylint ***"
PYTHONPATH=$(PYTHONPATH):./src/ ./tests/pylint/runpylint.py
test: docs
@echo "*** Running tests ***"
2018-12-12 11:38:09 +00:00
PYTHONPATH=$(PYTHONPATH):./src/ $(PYTHON) -m nose -v --with-coverage --cover-erase --cover-branches \
--cover-package=pylorax --cover-inclusive \
./tests/pylorax/ ./tests/composer/
coverage report -m
[ -f "/usr/bin/coveralls" ] && [ -n "$(COVERALLS_REPO_TOKEN)" ] && coveralls || echo
2018-12-12 11:38:09 +00:00
./tests/test_cli.sh
# need `losetup`, which needs Docker to be in privileged mode (--privileged)
# but even so fails in Travis CI
test_images:
sudo -E ./tests/test_cli.sh tests/cli/test_compose_ext4-filesystem.sh \
tests/cli/test_compose_partitioned-disk.sh \
tests/cli/test_compose_tar.sh \
tests/cli/test_compose_qcow2.sh \
tests/cli/test_compose_live-iso.sh
2018-12-12 11:38:09 +00:00
test_aws:
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_aws.sh
test_azure:
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_azure.sh
test_openstack:
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_openstack.sh
test_vmware:
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_vmware.sh
clean:
-rm -rf build src/pylorax/version.py
-rm -rf build src/pylorax/api/version.py
-rm -rf build src/composer/version.py
2010-10-12 16:23:29 +00:00
2010-12-02 12:36:22 +00:00
tag:
git tag -f $(TAG)
docs:
$(MAKE) -C docs apidoc html
2010-12-02 12:36:22 +00:00
archive: tag
@git archive --format=tar --prefix=$(PKGNAME)-$(VERSION)/ $(TAG) > $(PKGNAME)-$(VERSION).tar
2013-02-28 20:11:05 +00:00
@gzip $(PKGNAME)-$(VERSION).tar
@echo "The archive is in $(PKGNAME)-$(VERSION).tar.gz"
2010-10-19 15:35:50 +00:00
2010-12-02 12:36:22 +00:00
local:
2013-02-28 20:11:05 +00:00
@rm -rf $(PKGNAME)-$(VERSION).tar.gz
@rm -rf /var/tmp/$(PKGNAME)-$(VERSION)
@dir=$$PWD; cp -a $$dir /var/tmp/$(PKGNAME)-$(VERSION)
@rm -rf /var/tmp/$(PKGNAME)-$(VERSION)/.git
@dir=$$PWD; cd /var/tmp; tar --gzip -cSpf $$dir/$(PKGNAME)-$(VERSION).tar.gz $(PKGNAME)-$(VERSION)
@rm -rf /var/tmp/$(PKGNAME)-$(VERSION)
@echo "The archive is in $(PKGNAME)-$(VERSION).tar.gz"
2018-12-12 11:38:09 +00:00
test-in-copy:
rsync -aP --exclude=.git /lorax-ro/ /lorax/
make -C /lorax/ ci
2018-12-12 11:38:09 +00:00
cp /lorax/.coverage /test-results/
test-in-docker:
2018-12-12 11:38:09 +00:00
sudo $(DOCKER) build -t welder/lorax-tests:$(IMAGE_RELEASE) -f Dockerfile.test .
sudo $(DOCKER) run --rm -it -v `pwd`/.test-results/:/test-results -v `pwd`:/lorax-ro:ro --security-opt label=disable welder/lorax-tests:$(IMAGE_RELEASE) make test-in-copy
docs-in-docker:
sudo $(DOCKER) run -it --rm -v `pwd`/docs/html/:/lorax/docs/html/ --security-opt label=disable welder/lorax-tests:$(IMAGE_RELEASE) make docs
ci: check test
.PHONY: all install check test clean tag docs archive local
2018-12-12 11:38:09 +00:00
.PHONY: ci_after_success
ci_after_success:
# nothing to do here, but Jenkins expects this to be present, otherwise fails