The Jenkins continuous integration environment at https://djangoci.com builds pull requests using the GitHub Integration Plugin.
Commands
The main pull request builders are:
- pull-requests-focal (Ubuntu 20.04) runs PostgreSQL 14 (with
psycopg
) and MySQL 8. GIS: spatialite 4.3.0a-6, GDAL 3.0.4, GEOS 3.8.0, PROJ 6.3.1, PostGIS 3.4. - pr-mariadb (Ubuntu 20.04) runs MariaDB 10.5.25. GIS: GDAL 3.0.4, GEOS 3.8.0, PROJ 6.3.1.
- pull-requests-postgresql-psycopg2 (Ubuntu 20.04) runs PostgreSQL 14 with
psycopg2
. GIS: GDAL 3.0.4, GEOS 3.8.0, PROJ 6.3.1, PostGIS 3.4. - pull-requests-pg-server-side-binding (Ubuntu 20.04) runs PostgreSQL 14 with
psycopg
and server-side binding cursors. GIS: GDAL 3.0.4, GEOS 3.8.0, PROJ 6.3.1, PostGIS 3.4.
Other pull request builders which can be triggered manually with the corresponding comment phrases:
- pull-requests-oracle runs on Oracle 19.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.
- 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
- Ubuntu 18.04 runs PostgreSQL 12, MySQL 5.7 and MariaDB 10.4.25. GIS: spatialite 4.3.0a-5, GDAL 2.2.3, GEOS 3.6.2,
GitHub actions
Some other builders run on all pull requests via GitHub actions:
black
- runsblack
from the root checkout directory and fails if there are any warnings.flake8
- runsflake8
from the root checkout directory and fails if there are any warnings.docs
- runsmake spelling
from thedocs/
directory and fails if there are any spelling or sphinx errors.isort
- runsisort --check --diff .
from the root checkout directory and fails if any imports aren't sorted properly.JavaScript tests
- runs npm test and fails if there are any errorsWindows tests
- runs with Python 3.11.x.Selenium tests
- runs the Selenium tests for any PR with theselenium
label applied.Benchmark
- Runs the django-asv benchmarks for any PR with thebenchmark
label applied. (The Benchmarks take some time, and will run on each subsequent push, but can be disabled by removing the label until you're ready to run them again.)
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 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
.