|  | # 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 |