Open edX Webhooks Handlers (and Other JIRA/GitHub Utilities)
Set Up Development Environment
Make sure you've installed:
Python 2.7.x development environment (virtualenv strongly recommended)
herokucommands can be performed through the Heroku web-based dashboard as well, if you don't want to use the CLI.
Log in using the email address and password you used when creating your Heroku account:
Authenticating is required to allow both the
gitcommands to operate.
Add the Heroku app repo as a git remote:
heroku git:remote -a openedx-webhooks-staging
Verify that the remote is added properly:
git remote -v
You should see output similar to:
heroku https://git.heroku.com/openedx-webhooks-staging.git (push) heroku https://git.heroku.com/openedx-webhooks-staging.git (fetch) origin firstname.lastname@example.org:edx/openedx-webhooks.git (fetch) origin email@example.com:edx/openedx-webhooks.git (push)
This app relies on the following addons from Heroku:
While it's possible to replicate the entire stack locally, it'll be difficult to ensure consistent experience for each developer. Instead, we utilize the pipeline facility offered by Heroku to handle our development needs.
The general development cycle is:
Code → Deploy branch to staging → Test → Iterate
To deploy a local branch to staging:
git push heroku [branch_or_tag_or_hash:]master
In most cases, to push your current working branch, use:
git push heroku @:master
Once you're satisfied with your changes, go ahead and open a pull request per normal development procedures.
Smoke test the deployment
Navigate to https://openedx-webhooks-staging.herokuapp.com to make sure the app has started. If the URL is too hard to remember, you can also use:
If the application isn't running, visit the openedx-webhooks-staging Resources page to make sure there are dynos running.
make install-dev-requirements make test
In most cases, you'll want to deploy by promoting from staging to production. The general workflow is:
master → Deploy
master to staging → Test → Promote to
Prior to the promotion, make sure all the changes have been merged
master, and you've deployed the
master branch successfully to
git push heroku master
When you're ready to promote from staging to production:
heroku pipelines:promote -r heroku
Ensure the same versions are deployed
Make sure the same git commit is deployed to both environments. First see what's deployed on staging:
heroku releases -n 1
Then see what's deployed on production:
heroku releases -a openedx-webhooks -n 1
Make sure the abbreviated git SHAs match.
Smoke test the deployment
Navigate to https://openedx-webhooks.herokuapp.com to make sure the app has started. If the URL is too hard to remember, you can also use:
heroku open -a openedx-webhooks
Other things to know
This should no longer be an issue as of July 9th, 2018.
If you re-process pull requests, an unfortunate thing can happen: it will find stale pull requests that were written by edX employees who have now left. The bot will see that the author has no contributor agreement, and will make a new JIRA issue for the pull request. This is needless noise.
The bot looks for comments it wrote that have a JIRA issue id in them. You can leave the bot comment on the stale pull request so that at least it won't happen again in the future.
- Describe the different processes that are run on Heroku
- Describe how to access logs
- Make sure
docs/is up to date