devstack/Makefile

101 lines
2.4 KiB
Makefile

# DevStack Makefile of Sanity
# Interesting targets:
# ds-remote - Create a Git remote for use by ds-push and ds-pull targets
# DS_REMOTE_URL must be set on the command line
#
# ds-push - Merge a list of branches taken from .ds-test and push them
# to the ds-remote repo in ds-test branch
#
# ds-pull - Pull the remote ds-test branch into a fresh local branch
#
# refresh - Performs a sequence of unstack, refresh and stack
# Duplicated from stackrc for now
DEST=/opt/stack
all:
@echo "This just saved you from a terrible mistake!"
# Do Some Work
stack:
./stack.sh
unstack:
./unstack.sh
docs:
tox -edocs
# Just run the shocco source formatting build
docs-build:
INSTALL_SHOCCO=True tools/build_docs.sh
# Just run the Sphinx docs build
docs-rst:
python setup.py build_sphinx
# Run the bashate test
bashate:
tox -ebashate
# Run the function tests
test:
tests/test_ini_config.sh
tests/test_meta_config.sh
tests/test_ip.sh
tests/test_refs.sh
# Spiff up the place a bit
clean:
./clean.sh
rm -rf accrc doc/build test*-e *.egg-info
# Clean out the cache too
realclean: clean
rm -rf files/cirros*.tar.gz files/Fedora*.qcow2
# Repo stuffs
pull:
git pull
# These repo targets are used to maintain a branch in a remote repo that
# consists of one or more local branches merged and pushed to the remote.
# This is most useful for iterative testing on multiple or remote servers
# while keeping the working repo local.
#
# It requires:
# * a remote pointing to a remote repo, often GitHub is used for this
# * a branch name to be used on the remote
# * a local file containing the list of local branches to be merged into
# the remote branch
GIT_REMOTE_NAME=ds-test
GIT_REMOTE_BRANCH=ds-test
# Push the current branch to a remote named ds-test
ds-push:
git checkout master
git branch -D $(GIT_REMOTE_BRANCH) || true
git checkout -b $(GIT_REMOTE_BRANCH)
for i in $(shell cat .$(GIT_REMOTE_BRANCH) | grep -v "^#" | grep "[^ ]"); do \
git merge --no-edit $$i; \
done
git push -f $(GIT_REMOTE_NAME) HEAD:$(GIT_REMOTE_BRANCH)
# Pull the ds-test branch
ds-pull:
git checkout master
git branch -D $(GIT_REMOTE_BRANCH) || true
git pull $(GIT_REMOTE_NAME) $(GIT_REMOTE_BRANCH)
git checkout $(GIT_REMOTE_BRANCH)
# Add the remote - set DS_REMOTE_URL=htps://example.com/ on the command line
ds-remote:
git remote add $(GIT_REMOTE_NAME) $(DS_REMOTE_URL)
# Refresh the current DevStack checkout nd re-initialize
refresh: unstack ds-pull stack