Poradnik · OpenAI Codex CLI

OpenAI Codex: naprawa testów, które nie przechodzą w CI

Pipeline na mojej gałęzi jest czerwony, padają trzy testy, a lokalnie wszystko wygląda dobrze. Chcę, żeby agent przeczytał log z CI, odtworzył błąd i zaproponował najmniejszą poprawkę, zamiast żebym godzinę przekopywał się przez stack trace.

Dla kogo: programista · Sprawdzone 08.10.2026 · Autor: Karol Krawczyk

Wymagania

  • Plan ChatGPT z Codexem: według cennika Codex jest w planach Free, Go, Plus, Pro, Business, Edu i Enterprise. W firmie: Business albo Enterprise, logowanie przez Sign in with ChatGPT na koncie służbowym.
  • W Enterprise administrator musi zezwolić na lokalny Codex w ustawieniach workspace'u: Allow members to use Codex locally (albo Allow members to use Codex and Work Locally, zależnie od układu ustawień). Codex Cloud jest w Enterprise domyślnie wyłączony.
  • Codex CLI na macOS lub Linux: curl -fsSL https://chatgpt.com/codex/install.sh | sh, albo npm install -g @openai/codex lub brew install --cask codex. README podaje też instalator dla Windows (PowerShell).
  • Repozytorium git. W folderze pod kontrolą wersji Codex proponuje tryb Auto: zapis w obrębie projektu i pytanie o zgodę przy wyjściu poza niego. Dostęp do sieci jest w tym trybie domyślnie wyłączony.
  • GitHub CLI (gh) do pobrania logu z nieudanego joba albo log skopiowany ręcznie z widoku Actions.

Kroki

  1. Dodaj do AGENTS.md w katalogu głównym repozytorium komendy testów i zakazy, np.: ## Testy - Instalacja zależności: npm ci - Wszystkie testy: npm test - Nie oznaczaj testów jako skip i nie zmieniaj plików w .github/workflows. Codex czyta AGENTS.md przy starcie, łącznie do 32 KiB. Szkic pliku tworzy komenda /init.
  2. Zapisz log z nieudanych kroków do pliku poza commitem: gh run view <id-przebiegu> --log-failed > ci-failed.log.
  3. Uruchom Codex w katalogu repozytorium: codex --sandbox workspace-write --ask-for-approval on-request. Komendą /status sprawdź konfigurację sesji.
  4. Wklej prompt poniżej. Gdy Codex poprosi o zgodę na polecenie wymagające sieci (np. instalację zależności), przeczytaj je przed zatwierdzeniem.
  5. Po zakończeniu uruchom /review, żeby Codex przejrzał własne zmiany, potem sam uruchom testy i przeczytaj diff. Dopiero wtedy commit i push.
  6. Alternatywa bez lokalnej kopii: w komentarzu do PR-a napisz @codex fix the CI failures. Wymaga repozytorium połączonego z Codexem i uruchamia zadanie w chmurze (legacy cloud chat), które może wypchnąć poprawkę na gałąź, jeśli ma uprawnienia.

Prompt do skopiowania

Testy w CI nie przechodzą na tej gałęzi. Log z nieudanych kroków jest w pliku ci-failed.log. Przeczytaj go, odtwórz błąd lokalnie komendą testów z AGENTS.md i ustal przyczynę. Zanim cokolwiek zmienisz, napisz w dwóch, trzech zdaniach, czy problem jest w kodzie, w teście czy w środowisku (np. różnica wersji, strefa czasowa, kolejność testów). Potem wprowadź najmniejszą zmianę, która usuwa przyczynę. Nie wyłączaj testów, nie dodawaj skip ani ponowień, nie zmieniaj konfiguracji CI i nie poprawiaj niezwiązanych plików. Na koniec uruchom testy ponownie i pokaż wynik oraz listę zmienionych plików.

Wynik

Diagnoza w kilku zdaniach, mała zmiana w jednym lub kilku plikach i ponowny przebieg testów, który przechodzi lokalnie. Sprawdź diff: jeśli poprawka zmienia oczekiwaną wartość w asercji, upewnij się, że to test był błędny, a nie kod. Ostatecznym sprawdzeniem jest zielony pipeline po pushu, bo lokalny przebieg nie musi odtwarzać środowiska CI.

Najczęstszy błąd

Przyjęcie poprawki, która osłabia test zamiast naprawić kod, np. zmienia oczekiwany wynik albo szeroko łapie wyjątek. Zabroń tego w AGENTS.md i w prompcie, a diff asercji czytaj zawsze.

Kiedy tego nie robić

Gdy test pada przez brak sekretu, niedostępny serwis zewnętrzny albo limit runnera w CI: to sprawa konfiguracji pipeline'u, nie kodu. Nie dawaj też agentowi trybu danger-full-access ani --yolo na maszynie z dostępem do produkcji.

Chcesz przełożyć to na swój zespół?

Szkolimy zespoły z pracy z Copilotem, Claude Code i Codexem na ich własnych zadaniach.

← Wszystkie poradniki