Django
Django CI op GitHub Actions
Tests wachten op een databasecontainer en worden uitgevoerd op één kern.
16m → 3m
Testsuite
Jaren 70 → 0s
Migraties
Tests wachten op een databasecontainer en worden uitgevoerd op één kern.
Waarom het gebeurt
Elke run start een servicecontainer koud en de testrunner van Django is standaard serieel.
Wat te veranderen
- Voer tests uit met --parallel auto om door elke kern te gaan
- Gebruik --keepdb zodat migraties niet bij elke uitvoering opnieuw worden afgespeeld
- Cache de virtualenv en gebruik uv voor installatie
- Start Postgres als een servicecontainer met een tmpfs-gegevensmap
Django op runnerhut
yaml
jobs: test: runs-on: runnerhut-8vcpu-ubuntu-2404 services: postgres: image: postgres:17 env: { POSTGRES_PASSWORD: postgres } options: >- --health-cmd pg_isready --health-interval 5s steps: - uses: actions/checkout@v4 - run: uv sync --frozen - run: uv run python manage.py test --parallel auto --keepdbDe enige runnerhut-specifieke regel is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.