The Jenkins continuous integration environment at http://djangoci.com is setup to build pull requests [https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin using this plugin]. == Commands == Admins can comment "buildbot, test this please." on a a pull request to trigger a build (and whitelisted users can do so on their own PRs). Jenkins polls GitHub every 5 minutes to pickup new changes so there may be a short delay after a comment before the build is triggered. For trusted users, builds are automatically triggered for new pull requests and when a pull request is updated. The [http://djangoci.com/job/pull-requests-trusty/ main pull request builder] runs on Ubuntu 14.04 with PostgreSQL 9.3 and MySQL 5.6. Other pull request builders which can be triggered manually with the "Build with Parameters" button in Jenkins: * [http://djangoci.com/job/django-pull-requests/ Ubuntu 12.04 builder] runs on PostgreSQL 9.1 and MySQL 5.5. * [http://djangoci.com/job/pull-requests-oracle/ Oracle builder] (Oracle tests take about 40 minutes, so we avoid them unless we suspect a change may have broken something on Oracle). * [http://djangoci.com/job/pull-requests-selenium/ Selenium builder] also runs the selenium tests. Admins can comment, "buildbot, add to whitelist." to add a user to the trusted list. Whitelisted users will have their pull requests built automatically. In general if you submit a couple of solid PRs, we'll be happy to add you to this list. The admins list is primarily core developers and is accessible at http://djangoci.com/job/django-pull-requests/configure for those with a Jenkins account. The White list is available on the same page after clicking "Advanced". If you are doing a lot of triage work and think it'd be helpful to trigger builds, ask the [https://docs.djangoproject.com/en/dev/internals/roles/#ops-team ops team] for access. == Other checks == Two builders run on all pull requests: * [http://djangoci.com/job/flake8/ flake8] - runs the equivalent of `flake8` from the root checkout directory and fails if there are any warnings * [http://djangoci.com/job/docs/ docs] - runs the equivalent of `make spelling` from the docs directory and fails if there are any spelling or sphinx errors. == Troubleshooting == If: 1. you force push to a branch after the initial build starts or 2. a commit is pushed to master after the initial build starts You will see an error like `git checkout where hash was not the commit`. Currently the only solution is to retrigger the build. There is a [https://github.com/janinko/ghprb/issues/116 ticket] for the issue in GitHub Pull Request Builder.