Merge pull request #613 from MITx/feature/ichuang/add-gitreload-docs
add docs for gitreload
This commit is contained in:
@@ -72,3 +72,25 @@ Very handy: if you uncomment the `--pdb` argument in `NOSE_ARGS` in `lms/envs/te
|
||||
If you change course content, while running the LMS in dev mode, it is unnecessary to restart to refresh the modulestore.
|
||||
|
||||
Instead, hit /migrate/modules to see a list of all modules loaded, and click on links (eg /migrate/reload/edx4edx) to reload a course.
|
||||
|
||||
### Gitreload-based workflow
|
||||
|
||||
github (or other equivalent git-based repository systems) used for
|
||||
course content can be setup to trigger an automatic reload when changes are pushed. Here is how:
|
||||
|
||||
1. Each content directory in mitx_all/data should be a clone of a git repo
|
||||
|
||||
2. The user running the mitx gunicorn process should have its ssh key registered with the git repo
|
||||
|
||||
3. The list settings.ALLOWED_GITRELOAD_IPS should contain the IP address of the git repo originating the gitreload request.
|
||||
By default, this list is ['207.97.227.253', '50.57.128.197', '108.171.174.178'] (the github IPs).
|
||||
The list can be overridden in the startup file used, eg lms/envs/dev*.py
|
||||
|
||||
4. The git post-receive-hook should POST to /gitreload with a JSON payload. This payload should define at least
|
||||
|
||||
{ "repository" : { "name" : reload_dir }
|
||||
|
||||
where reload_dir is the directory name of the content to reload (ie mitx_all/data/reload_dir should exist)
|
||||
|
||||
The mitx server will then do "git reset --hard HEAD; git clean -f -d; git pull origin" in that directory. After the pull,
|
||||
it will reload the modulestore for that course.
|
||||
|
||||
Reference in New Issue
Block a user