배포 후 사후 브라우저 자동 실행 중단 (2026-09-11)
- 기간: 2026-09-11, Codex 1세션. 사용자: “이거 좀 꺼줄래? 배포 이후에도 실행 안하게 하고”.
- 랜딩: staging·main 반영 완료. hotfix
release/v0.17.11의 후보6894785a→ staging #1566 (d9609c95) → main #1567 (1587cb7a). 원격 CI·Merge Check·자동 배포는 사용자 지시로 생략했다. 앱·DB·Edge 재배포와 새 버전 태그 생성은 없다. - 설계서: 없음(운영 정책 변경). 이슈 #1564에 분석·계획·사용자 go를 기록했다.
- 정본: 배포 파이프라인, 앱
.github/workflows/deploy-steps.yml. - 도구: GitHub API·기존 JSON 결과 읽기, Node22.23.2 로컬 검사. 원격 CI·운영 데이터 변경 없음.
- 게이트: 기존
ciToolchain검사에 사후 두 잡 비활성·smoke·태그·Full CI 유지 조건을 반영했다. DB·마이그레이션·개별 E2E 케이스 변경은 없다. - 버그리포트: 없음. 사후 검사 실패 자체를 수리한 작업이 아니다.
Phase 현황
| Phase | 내용 | 상태 |
|---|---|---|
| Phase 1 | 두 사후 잡 비활성화와 관련 검사 | 기존 로컬 검사 완료, hotfix staging·main 반영 완료 |
| Phase 2 | 배포 절차와 작업 기록 | 기존 문서 검사·빌드와 실제 병합 결과 연결 |
1. 배경
기존 Production 배포는 기본 CRUD smoke 뒤 브라우저 시나리오와 실패 알림을 별도로 실행했다. 최신 실행34554726839은 attempt1에서15개 중1성공·14실패·skip0·미실행0, 성공률6.7%였다. 브라우저 잡4분29초와 보고 잡5초가 실행됐다. 배포·태그 성공과 사후 검사 실패는 별개였다.
2. 문제 제기
사용자는 반복 실패와 추가 Actions 사용량을 확인한 뒤 지금은 사후 자동 검사가 의미 없다고 판단해 중단을 지시했다. 해당 검사는 독립 워크플로가 아닌 공통 배포 파일의 잡이므로 배포 전체를 끄지 않고 두 잡의 실행 조건을 변경해야 한다.
3. 해결 방안
| 방안 | 판단 |
|---|---|
| 검사·경고 두 잡의 조건을 명시적으로 false로 변경 | 채택. 배포 후 두 잡의 실행을 중단하며 공용 테스트는 보존한다. |
| Production 배포 워크플로 전체 비활성화 | 기각. 정상 배포·기본 smoke·태그까지 막힌다. |
| 실패 단언 완화·재시도 증가 | 기각. 자동 실행 중단이라는 사용자 지시를 충족하지 않는다. |
4. 적용한 내용
앱2파일 +10/-5. browser-journeys와 browser-journeys-report에 if: $false를 설정했다. 공용 테스트·실행 명령과 Full CI, 기본 CRUD·태그는 그대로다. 테스트를 다시 켜려면 사용자 지시를 반영한 코드 변경이 필요하다.
최초에는 “명시적인 원격 CI 지시가 없으면 로컬만”을 적용해 준비 단계에서 대기했다. 이후 오너가 “이거 그냥 hotfix 트랙으로 검사없이 stage, main 머지해”라고 명시해 이 한 건의 검사 생략 병합을 승인했다. 기존 관리자 bypass 권한과 [skip ci] 커밋을 사용해 두 PR을 merge commit으로 반영했으며 보호 규칙 자체는 변경하지 않았다. 이 예외를 다른 작업의 CI 생략 권한으로 확대하지 않는다.
로컬 검증 후보 a7969423과 CI 생략 메시지를 적용한 후보 6894785a, staging merge d9609c95, main merge 1587cb7a의 tree는 모두 e939049ec1d34eb8d5ab4b8e9ee6fb86ba09be04로 같다. staging은 2026-09-11 13:02:23 KST, main은13:03:21 KST에 병합됐다. 원격 main의 두 잡 조건이 false임을 읽어 확인했고, 후보·staging·main SHA에 새 Actions 실행이0개인 것도 확인했다. 새 검사를 실행해 확인한 결과는 아니다.
5. 적용 결과
| 항목 | 결과 |
|---|---|
| 관련 로컬 단위 | Node22.23.2, 27성공·0실패 |
| npm run check | 정적 검사 성공, 단위 전체3,435·성공3,400·기존skip35·실패0 |
| 로컬 precheck | 기존 --release origin/main, 기준e49545f1·후보a7969423. 정적·unused·빌드·산출물 및 단위3,400성공/35기존skip/0실패, 1분57초. 오너 hotfix 지시 후 목적 release 대상 재검사는 생략했다. |
| 문서 검사·빌드 | 준비 후보에서 약관4버전·경로345개, 문서 빌드52.29초, 공개 자산31개 통과. 실제 병합 결과를 채운 문서의 추가 검사·CI·사이트 배포는 오너 지시로 생략 |
| 배포당 사후 잡 | 기존2개 → main의 두 잡 모두 비활성화. 다음 배포에서0개 실행하도록 설정 반영 완료 |
| 원격 CI·배포 | 후보·staging·main SHA의 새 Actions 실행0개. Full·Merge Check·배포 미실행을 성공으로 보고하지 않음 |
6. 이번 개선으로 향상된 것
운영 워크플로에 반영한 변경으로 다음 배포부터 반복되던 사후 브라우저 실행과 실패 댓글을 중단한다. 배포 전 공용 브라우저 검사와 배포 직후 기본 동작 검사의 정의는 유지했다. 실제 운영 화면에서만 발생하는 문제의 자동 점검 범위가 줄어드는 점은 사용자 결정의 영향으로 남긴다.
남은 것
요청한 자동 실행 중단과 두 브랜치 반영은 완료했다. 이를 확인하기 위한 새 배포·검사를 만들지 않았다. 과거 사후 브라우저14실패의 수리와 재개는 이번 범위가 아니며 자동으로 추진하지 않는다. 문서 저장소 반영과 문서 사이트 게시 여부는 구분한다.