Naar inhoud springen

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

  1. Voer tests uit met --parallel auto om door elke kern te gaan
  2. Gebruik --keepdb zodat migraties niet bij elke uitvoering opnieuw worden afgespeeld
  3. Cache de virtualenv en gebruik uv voor installatie
  4. 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 --keepdb
Een werkend uitgangspunt

De 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.