# 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