Skip to content

fix(ci): develop 의도된 red 게이트가 무관 PR required check 를 빨갛게 만든다 — 기대 실패 목록(xfail) 도입 #1383

Closed as not planned

Description

@OnlyReadOneBook

문제

0828 밤 테스트 게이트 PR 10건이 develop 에 의도적으로 red 상태로 머지된 뒤(#790·#873 대기 TimeLetterDtoContractTest 4건, #1359·#1360·#1361 대기 screenshotTest 컴파일 3모듈), 이 실패가 게이트와 무관한 모든 PR 의 required check 를 빨갛게 만든다.

역의존 폐포 실행 자체는 옳다(코어 계약 변경이 소비처를 깨뜨린 #884 전례). 문제는 base(develop)에 이미 존재하는 의도된 실패를 PR 이 뒤집어쓰는 것이다.

제안 — 기대 실패 목록(xfail)

게이트 실패를 명시 목록 .github/ci-expected-failures.json 으로 등록하고 CI 가 이를 xfail 의미론으로 처리한다:

  1. 기대 실패는 job 을 빨갛게 만들지 않는다 — unit test 는 해당 테스트만 실행에서 제외(Gradle init script), screenshot 은 해당 모듈 lane 을 분리 실행.
  2. XPASS 는 red — 기대 실패로 등록된 테스트·모듈이 통과하기 시작하면 job 이 실패하며 목록에서 제거를 요구한다. 구현 이슈(DTO 기본값·receiverIds nullable 제거 — 누락 계약을 빈 값으로 은폐 #790·수신자용 달력 월 이동·예약 잠금 상세가 최종 시안 대비 미완성 #873·refactor(mindrecord): 작성 화면의 screenshotTest용 Content 경계 분리 #1359~refactor(timeletter): 목록 화면의 screenshotTest용 Content 경계 분리 #1361)가 머지될 때 작성자가 목록 항목을 같이 지우게 강제된다.
  3. 목록 파일 변경은 resolve-pr-impact.mjs 의 IMPACT_POLICY_PATHS 로 등록해 full validation 을 강제한다(fail-closed).

게이트의 강제력은 유지된다: 목록 항목이 남아 있는 한 구현 대기가 가시적이고, 구현 없이 항목만 지우면 해당 테스트가 다시 red 를 만든다.

범위

  • .github/ci-expected-failures.json — 게이트 5건(이슈 참조 포함) 등록
  • .github/ci-expected-failures.init.gradle — unit test 제외 필터
  • .github/scripts/ci-expected-failures.mjs + 테스트 — screenshot 파티션·XPASS probe·리포트
  • .github/workflows/unit-test.yml·screenshot.yml — 메커니즘 결선
  • .github/scripts/resolve-pr-impact.mjs — 정책 경로 추가

Refs #790 Refs #873 Refs #1359 Refs #1360 Refs #1361

Activity

  1. added
    maintenanceCI·빌드·의존성·저장소 운영 유지보수
    area:platformCI·빌드·릴리스·저장소 운영 영역
    on Aug 28, 2026
  2. github-actions commented on Aug 28, 2026

    @github-actions
    Contributor

    이 이슈는 필수 메타데이터를 판정할 수 없어 자동으로 닫았습니다.

    • 작업 유형이 없거나 허용된 값이 아닙니다.
    • 주 담당 모듈이 없거나 허용된 값이 아닙니다.

    이슈 등록 양식에 맞게 본문을 보완한 뒤 다시 열어 주세요.

  3. added a commit that references this issue on Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:platformCI·빌드·릴리스·저장소 운영 영역maintenanceCI·빌드·의존성·저장소 운영 유지보수

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions