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