The Jenkins continuous integration environment at https://djangoci.com builds pull requests using the [https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Integration+Plugin GitHub Integration Plugin]. == Commands == The main pull request builder is: * [https://djangoci.com/job/pull-requests-bionic/ pull-requests-bionic] (Ubuntu 18.04) runs PostgreSQL 10 and MySQL 5.7. GIS: spatialite 4.3.0a-5, GDAL 2.2.3, GEOS 3.6.2, PostGIS 2.4 Other pull request builders which can be triggered manually with the corresponding comment phrases: * [https://djangoci.com/job/pull-requests-oracle/ pull-requests-oracle] runs on Oracle 18.3.0.0.0. The Oracle tests take about 40 minutes, so we avoid them unless we suspect a change may have broken something on Oracle. * buildbot, test on oracle. * [https://djangoci.com/job/pull-requests-selenium/ pull-requests-selenium] runs the selenium tests. * buildbot, test on selenium. * Retired: * Ubuntu 12.04 runs PostgreSQL 9.1 and MySQL 5.5. GIS: spatialite 3.0.0~beta, GDAL 1.7.3, GEOS 3.2.2, PostGIS 1.5.3 * Ubuntu 14.04 runs PostgreSQL 9.3 and MySQL 5.6. GIS: spatialite 4.1.1, GDAL 1.10.1, GEOS 3.4.2, PostGIS 2.1 * Ubuntu 16.04 runs PostgreSQL 9.5 and MySQL 5.7. GIS: spatialite 4.3.0a-5, GDAL 1.11.3, GEOS 3.5.0, PostGIS 2.2 == Other checks == Some other builders run on all pull requests: * [https://djangoci.com/job/flake8/ flake8] - runs the equivalent of `flake8` from the root checkout directory and fails if there are any warnings * [https://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. * [https://djangoci.com/job/isort/ isort] - runs `isort --recursive --check-only .` from the root checkout directory and fails if any imports aren't [https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/#imports sorted properly]. * [https://djangoci.com/job/pull-requests-javascript/ pull-requests-javascript] - runs the [https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/javascript/#testing-from-the-command-line JavaScript tests]. * [https://djangoci.com/view/PR%20Builders/job/pull-requests-windows/ pull-requests-windows] - runs with Python 3.7.x (see django-windows below) == Troubleshooting == Q: The build result disappeared. How do I get it back? A: Build results are kept for a few days. Repush to your branch if you need to run the build again. Q: The build failed with "ModuleNotFoundError: No module named 'memcache'" A: The Python dependencies probably failed to install from PyPI. There's an issue where PyPI sometimes [https://github.com/pypa/pip/issues/5345 fails to return a correct response]. Q: Why is the disk nearly full on the Jenkins master node? A: `/var/log/jenkins/jenkins.log` may be many gigabytes in size. Remove that file and restart Jenkins with `service jenkins restart`. == Notes for other builds == === [https://djangoci.com/job/django-windows/ django-windows] === ||= Python =||= SQLite =|| || 3.5.4 || 3.8.11 || || 3.6.8 || 3.21.0 || || 3.7.2 || 3.27.1 || (installed with Windows x86-64 executable installer) The SQLite for Python 3.7.x is updated to SQLite 3.26.0 (from 3.21.0) by replacing C:\Python37\DLLs\sqlite3.dll with the one from [https://sqlite.org/download.html sqlite-dll-win64-x64-XXXXXX.zip]. This update allows testing [https://github.com/django/django/blob/5e8a07d69dee354d9e6dbda874f9454f4bc3491e/django/db/backends/sqlite3/features.py#L38 can_alter_table_rename_column], #29182, and other features that require a more recent SQLite.