python / python/mypy

Speeding up CI

Aperta
#8,783 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

needs discussion topic-tests
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

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?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

La issue non indica file, test o punti di ingresso della CI e presenta diverse alternative invece di un’attività selezionata. Inizia identificando la configurazione della CI e misurando una build tipica; il lavoro sarebbe completato quando fosse stata concordata un’ottimizzazione con prove che la CI sia più veloce.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
ci-cd, developer-experience
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.