python / python/mypy

Speeding up CI

Offen
#8,783 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

needs discussion topic-tests
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

CI is currently pretty slow. In particular, if there are several PRs in quick succession, we'll run out of CI capacity. A reasonable medium-term goal might to get CI builds finish in 10 minutes in typical cases. I'm not sure if that is realistic, however.

Here are some ideas about how to make things better:

  • Drop appveyor (it seems redundant now) [done]
  • Run selected slow tests only after a PR has been merged
    • Alternatively, only run them once per PR iteration, and run on all platforms and Python versions after merge
  • If a PR only touches mypyc, don't run non-compiled mypy tests
  • Remove some slow tests from CI if they don't bring much value
  • Run more tests in incremental mode
  • If a PR only touches docs, don't run all tests
  • Test fewer platform / Python version combinations (possibly only in PR builds)
  • Speed up individual tests somehow
  • Somehow get more CI capacity

Can anybody suggest more things that could help, or which of the above things would be worth pursuing first?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Das Issue nennt keine Dateien, Tests oder CI-Einstiegspunkte und stellt mehrere Alternativen statt einer ausgewählten Aufgabe vor. Beginne damit, die CI-Konfiguration zu identifizieren und einen typischen Build zu messen; als abgeschlossen würde eine vereinbarte Optimierung gelten, für die nachgewiesen ist, dass die CI schneller ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
ci-cd, developer-experience
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.