디버그 툴킷
- 디버그 로깅으로 재실행 — 실패한 실행의 UI 버튼을 누르거나, 저장소 비밀값으로
ACTIONS_RUNNER_DEBUG=true와ACTIONS_STEP_DEBUG=true를 설정해. 로그가 5-10배 길어지지만 모든 API 호출을 볼 수 있어. - 단계 디버그 액션 —
mxschmitt/action-tmate가 작업 중간에 러너에 SSH 세션을 열어줘. 유용하지만 위험해. 세션을 보는 누구나 비밀값을 훔칠 수 있거든. - 단계 요약 — 실패한 단계 안에서
$GITHUB_STEP_SUMMARY에 진단 정보를 추가해. - 아티팩트 덤프 — 실패와 관련된 파일(로그, 스크린샷, 환경변수 덤프)을
if: always()로 업로드해. 다운로드해서 검사할 수 있어. - 로컬 재현 — 같은 이미지, 같은 환경변수를 쓰고 act나 그냥 Docker를 활용해.
흔한 버그와 그걸 드러내는 방법
- 단계가 예상치 못하게 건너뛰어짐 →
if:표현식을 확인해. act가 해석된 값을 출력해줘. - 비밀값이 비어 보임 → 범위 안에 없거나(조직/환경 불일치) fork PR 때문이야.
- 캐시가 절대 복원 안 됨 → 키가 불일치해. 디버그로 실행해서 해석된 키 문자열을 봐.
- 매트릭스가 작업 안에서 생성 안 됨 → 빈
fromJSON입력이야. 상위 작업의 출력값을 확인해. - 셀프 호스티드 러너가 안 가져감 → 라벨 불일치, 러너 오프라인, 또는 러너가 바쁜 상태야.