README.rst 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. Frank CI
  2. ========
  3. Frank CI aims to be a minimal (but smart) continuous integration system.
  4. To get started you simply deploy from with a WSGI server (e.g NGNIX) and configure
  5. your git repository (github and others) to post a load after each push.
  6. If your repository includes a top level file called `.frank.yaml` your
  7. frank instance will react uppon the commands found in the file.
  8. Frank commands
  9. --------------
  10. Frank understands the following file format::
  11. .. text: yaml
  12. commands:
  13. - do_this
  14. - do_that
  15. - run_function_python
  16. - deploy_there
  17. do_this:
  18. - shell: echo "this"
  19. do_that:
  20. shell:
  21. - cd foo
  22. - touch bar.txt
  23. run_function_python:
  24. python:
  25. - foo.bar:callable_object
  26. The `commands` is a mandatory list of commnads to excute after each push.
  27. The order of the commands is how the will be executed.
  28. Following the key `commands` are definitions of each command. Command can
  29. by eith `shell` commands or some callable python object when specified as `python`
  30. and given with full import path `foo.bar` and following callable object after
  31. the collon.
  32. Example 1:
  33. ----------
  34. The following example will run the tests, build sphinx documentation and
  35. publish static HTML files via rsync to another server::
  36. .. text: yaml
  37. commads:
  38. - test
  39. - build_sphinx
  40. - publish
  41. test:
  42. shell:
  43. - pip install -e .
  44. - python setup.py test
  45. build_sphinx:
  46. shell:
  47. cwd: docs
  48. cmd: make html
  49. publish:
  50. shell:
  51. - rsync -avz docs/build/html/ docserver.company.com:/var/www/docs/
  52. This example demonstrates running multiple commands after the keyword `shell`.
  53. You can also specify any keyword that the function `subprocess.Popen` accepts.
  54. For example you can specify envirnment variables or the working directroy, as
  55. in the example with the keyword `cwd`.
  56. Example 2:
  57. ----------
  58. TODO: demonstrate running of python code