파이프라인 운영과 문제 해결
6. 연습 문제
문제 1. 로그에서 첫 에러 찾기
ci_log.txt 에서 대소문자 구분 없이 error: 또는 FAIL 이 처음 나오는 줄만 줄 번호와 함께 찾는 명령을 쓰세요.
grep -n -m1 -iE 'error:|FAIL' ci_log.txt-m1 은 첫 매치에서 멈추라는 뜻이라 나머지 로그를 읽을 필요가 없습니다.
문제 2. 로컬 재현 순서
파이프라인에서만 실패한다고 보고됐습니다. 원인을 찾기 전에 먼저 해야 할 일을 한 문장으로 쓰세요.
같은 명령을 같은 JDK 버전, 클린 체크아웃 상태의 로컬 환경에서 그대로 실행해 재현되는지 확인합니다.
재현되지 않으면 환경 차이(버전·캐시된 파일·환경 변수)부터 의심합니다.
문제 3. 플레이키 테스트, 재시도만으로 충분한가
재시도 3번 중 2번째에 통과하는 테스트가 있습니다. 재시도로 파이프라인만 통과시키고 넘어가도 되는지, 그 이유와 함께 쓰세요.
안 됩니다. 재시도는 증상만 가리므로 Thread.sleep·순서 의존·공유 자원 같은 원인을 먼저 확인해야 합니다.
원인을 못 찾았다면 최소한 재시도 횟수를 기록해 추이를 관찰합니다.
문제 4. 시크릿 탐지 정규식
AWS 액세스 키 ID(AKIA 로 시작, 총 20자)를 스테이징된 diff 에서 찾는 grep 명령을 쓰세요.
git diff --cached -U0 | grep -nE 'AKIA[0-9A-Z]{16}'AKIA 4자 뒤에 영문 대문자·숫자 16자가 더 있어 총 20자입니다.
문제 5. self-hosted runner 라벨 매칭
폐쇄망 러너 중 closed-net 라벨을 가진 러너에서만 실행되도록 잡을 설정하는 runs-on 줄을 쓰세요.
runs-on: [self-hosted, closed-net]라벨이 모두 일치하는 러너가 없으면 잡은 대기 상태로 멈춥니다.