From 148623152fb22a9da982667d55b642311ff8559e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Tue, 25 Aug 2026 00:30:17 +0900 Subject: [PATCH] =?UTF-8?q?ci(dependency-review):=20=EC=8A=A4=EB=83=85?= =?UTF-8?q?=EC=83=B7=20=EB=8C=80=EA=B8=B0=20=ED=95=9C=EB=8F=84=EB=A5=BC=20?= =?UTF-8?q?20=EB=B6=84=EC=9C=BC=EB=A1=9C=20=EC=98=AC=EB=A6=B0=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR 스냅샷은 생성(PR 컨텍스트, 아티팩트만) → workflow_run → 제출 순으로 두 워크플로를 거친다. dependency-review 는 생성과 동시에 출발해 10분만 기다리는데, 실측상 파이프라인이 9분을 쓴다 — 큐가 조금만 밀리면 취약점 유무와 무관하게 'No snapshots were found' 로 실패한다. 실측(#886, UTC): 생성 14:46:36~14:49:39(3분 3초) / 제출 시작 14:54:52(생성 종료 후 5분 13초, workflow_run 지연+러너 큐) / 한도 소진 14:58:19. 같은 시각 다른 PR 5건은 통과해, PR 내용이 아니라 큐 상태로 결과가 갈렸다. 한도를 실측치의 두 배로 둔다. 스냅샷이 제때 오면 재시도 없이 끝나므로 평시 비용은 같다. Closes #1081 --- .github/workflows/dependency-review.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index bed044168e..1b904ba9ba 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -15,6 +15,25 @@ jobs: name: Review dependency changes runs-on: ubuntu-latest steps: + # PR 스냅샷은 두 워크플로를 거쳐야 API 에 올라온다 (fork PR 을 checkout 하지 않기 위한 분리다). + # 1. Gradle Dependency Submission — PR 컨텍스트. 아티팩트만 만든다 + # 2. Submit PR Dependency Graph — workflow_run. 그 아티팩트를 제출한다 + # + # 이 job 은 1번과 **동시에** 출발하므로, 파이프라인이 끝날 때까지 기다려야 볼 것이 생긴다. + # 못 기다리면 취약점 유무와 무관하게 `No snapshots were found for the head SHA` 로 실패한다. + # + # 실측 (#1081, PR #886, UTC): + # 14:46:36 → 14:49:39 생성 (3분 3초) + # 14:47:26 이 job 시작 + # 14:54:52 제출 시작 — 생성 종료 후 5분 13초 (workflow_run 지연 + 러너 큐) + # 14:58:19 한도 10분 소진, 실패 + # 필요한 시간이 9분인데 한도가 10분이라, 큐가 조금만 밀려도 넘어갔다. + # 같은 시각 다른 PR 5건은 통과했다 — PR 내용이 아니라 큐 상태로 결과가 갈렸다. + # + # 한도를 20분으로 두어 실측치의 두 배 여유를 준다. 스냅샷이 제때 오면 재시도 없이 즉시 + # 끝나므로 평시 비용은 그대로다. 근본적으로는 이 job 을 제출 뒤로 옮기는 편이 맞지만, + # dependency-review-action 이 `pull_request` 컨텍스트를 전제해 workflow_run 으로 옮기면 + # PR 에 체크가 붙지 않는다. 그 재배치는 별건으로 다룬다. - name: Fail on newly introduced high-severity vulnerabilities uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 with: @@ -22,4 +41,4 @@ jobs: fail-on-severity: high license-check: true retry-on-snapshot-warnings: true - retry-on-snapshot-warnings-timeout: 600 + retry-on-snapshot-warnings-timeout: 1200