analyze-ci-speed
Analyze compilation time and test durations from CI logs. Use when the user asks about slow builds, slow tests, or wants to optimize CI time.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Analyze compilation time and test durations from CI logs. Use when the user asks about slow builds, slow tests, or wants to optimize CI time.
How to use
Upewnij się, że masz zainstalowany interfejs wiersza poleceń GitHub (gh) i jesteś zalogowany — uruchom
gh auth login, jeśli jeszcze tego nie zrobiłeś.Pobierz identyfikator ostatniego pomyślnego uruchomienia workflow'u z gałęzi dev, wykonując polecenie gh run list z filtrami dla workflow'u Rust, statusu success i limitem 1 wyniku — zwróci to databaseId, conclusion, headSha i createdAt.
Dla otrzymanego identyfikatora uruchomienia pobierz listę zadań testowych (nextest, nextest_all_features, coverage) — użyj gh run view z parametrem --json jobs i filtruj po nazwach zadań, aby wyodrębnić ich identyfikatory.
Pobierz logi dla każdego zadania testowego — uruchom gh run view z parametrem --log dla każdego job ID, a następnie usuń kody ANSI (kolory i formatowanie) za pomocą perl lub innego narzędzia, zapisując czyste logi do pliku.
Przeanalizuj logi: wyszukaj linię "Finished ... in Xm Ys" aby znaleźć całkowity czas kompilacji, a następnie przeszukaj wyniki nextest w poszukiwaniu linii PASS i SLOW z czasami testów (format: [s.sss]). Wyodrębnij wszystkie czasy testów i posortuj, aby zidentyfikować 10 najwolniejszych.
Przygotuj raport zawierający całkowity czas kompilacji, listę 10 najwolniejszych testów z czasami, wskazane testy oznaczone jako SLOW, oraz rekomendacje — na przykład które testy mogą być zoptymalizowane, które crate'y mają długi czas kompilacji, lub gdzie można poprawić cache'owanie.