Toolverse
Wszystkie skille

analyze-ci-speed

autor: Sovereign-Labs

Zidentyfikuj wąskie gardła w budowaniu i testowaniu — analizuj logi CI, aby przyspieszyć pipeline

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie
Wyświetlenia
1

O skillu

Narzędzie do analizy czasu kompilacji i trwania testów bezpośrednio z logów CI. Wczytaj logi z GitHub Actions, wyodrębnij czasy budowania oraz czasy wykonania testów, a następnie otrzymaj ranking najwolniejszych testów i rekomendacje optymalizacyjne. Idealne dla zespołów chcących zmniejszyć czas oczekiwania na wyniki build'ów i identyfikować miejsca do poprawy wydajności.

Jak używać

  1. Upewnij się, że masz zainstalowany interfejs wiersza poleceń GitHub (gh) i jesteś zalogowany — uruchom gh auth login, jeśli jeszcze tego nie zrobiłeś.

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

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

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

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

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

Podobne skille