Skip to content

fix(scatterlab-prebuild-android): setup-node 의 yarn 캐시 의존을 끊는다 - #9

Merged
kdwkr merged 1 commit into
scatterlab/0.87.1from
daewoon/android-corepack
Sep 11, 2026
Merged

fix(scatterlab-prebuild-android): setup-node 의 yarn 캐시 의존을 끊는다#9
kdwkr merged 1 commit into
scatterlab/0.87.1from
daewoon/android-corepack

Conversation

@kdwkr

@kdwkr kdwkr commented Sep 11, 2026

Copy link
Copy Markdown
Member

Summary:

앱 빌드 러너로 옮긴(#8) 결과 checkout 은 통과했다 — 러너 전환이 TLS 문제를 풀었다. 다음 관문은 setup-node 였다 (run 34554334345):

node: v22.14.0
npm: 10.9.2
yarn:
##[error]Unable to locate executable file: yarn.

공용 ./.github/actions/setup-nodecache: yarn 을 강제하고, actions/setup-node 는 그 캐시 키를 만들려고 yarn 이 존재하기 전에 yarn 을 부른다. 이 러너에서 yarn 은 corepack shim 으로 제공되고 그 shim 은 러너별 tool cache 의 node 설치본에 귀속되므로, 해당 node 버전을 막 내려받은 러너에는 shim 이 없다.

이건 이 조직에서 이미 문서화된 함정이다 — zeta-frontenddeploy-native.yml 주석:

yarn은 corepack shim으로 제공되는데, shim은 node 설치본(러너별 _work/_tool 캐시)에 귀속된다. setup-node가 새 24.x를 처음 내려받은 러너에서는 shim이 없어 모든 yarn 호출이 exit 127로 죽는다 (run 31059235187) ... corepack enable은 멱등

이 레포의 scatterlab-prebuild-ios.yml 도 같은 러너에서 공용 액션을 쓰지 않고 actions/setup-node + corepack enable 로 간다. 같은 방식을 쓴다.

node 버전은 공용 액션 기본값(22.14.0)을 그대로 둔다 — 실패 원인은 캐시 입력 하나였으므로 변수를 하나만 바꾼다. 재시도 로직이 있는 ./.github/actions/yarn-install 은 유지한다.

Changelog:

[INTERNAL] [FIXED] - Stop the Android prebuilt build job from depending on yarn being present before corepack runs

Test Plan:

yaml ok
steps: ['actions/checkout@v4', 'Setup git safe folders', 'Isolate the yarn cache',
        'actions/setup-node@v6', 'Enable corepack', './.github/actions/yarn-install',
        'Point ccache at a known directory', 'Restore the Android ccache', ...]

actionlint 기존 노이즈 외 새 경고 없음.

실환경에서 통과한 관문: 버전 검사 · 소비자 스모크 13/13 · checkout(러너 전환으로 해결). 남은 미실증: Gradle 빌드 본체, verify_symbol 게이트, 아카이브 패킹, draft 생성·검증·승격.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • 빌드 및 배포
    • Android 빌드 환경이 Node.js 22.14.0을 사용하도록 변경되었습니다.
    • 빌드 과정에서 Corepack이 활성화됩니다.

앱 빌드 러너로 옮기자 checkout 은 통과했지만 setup-node 에서 죽었다
(run 34554334345):

    yarn:
    ##[error]Unable to locate executable file: yarn.

공용 `./.github/actions/setup-node` 는 `cache: yarn` 을 강제하는데,
setup-node 는 그 캐시 키를 만들려고 `yarn` 을 먼저 부른다. 이 러너에서 yarn 은
corepack shim 으로 오고 shim 은 러너별 tool cache 의 node 설치본에 귀속되므로,
그 node 버전을 막 내려받은 러너에는 shim 이 없다.

zeta-frontend 의 `deploy-native.yml` 이 같은 걸 겪고 주석으로 남겨뒀고, 이
레포의 iOS prebuild 도 같은 러너에서 공용 액션을 쓰지 않는다. 같은 방식으로
`actions/setup-node` + `corepack enable` 을 쓴다. node 버전은 공용 액션
기본값(22.14.0)을 그대로 둬 변수를 하나만 바꾼다. 재시도가 있는
`./.github/actions/yarn-install` 은 유지한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: 906b623e-ba1c-4194-9232-80579ed3bdd1

📥 Commits

Reviewing files that changed from the base of the PR and between 3230bda and 1e48ed5.

📒 Files selected for processing (1)
  • .github/workflows/scatterlab-prebuild-android.yml

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


Walkthrough

Android 사전 빌드 워크플로가 저장소 composite setup-node 액션을 제거합니다. actions/setup-node@v6로 Node.js 22.14.0을 설치한 후 corepack enable을 실행합니다.

Changes

Android 빌드 초기화

Layer / File(s) Summary
Node.js 및 Corepack 초기화
.github/workflows/scatterlab-prebuild-android.yml
워크플로가 저장소의 ./.github/actions/setup-node 대신 Node.js 22.14.0을 직접 설정합니다. 이후 corepack enable을 실행합니다.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 1e48e

The Android workflow now initializes Node.js and Corepack in the established order, with no identified merge-blocking risk.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 Android 빌드 워크플로에서 setup-node의 Yarn 캐시 의존성을 제거하는 주요 변경을 정확하게 설명합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch daewoon/android-corepack

토끼가 새 Node.js를 맞이해요
안드로이드 길을 곧게 닦아요
Corepack도 힘차게 깨어나요
빌드 명령이 또렷이 뛰어요
당근처럼 안정된 흐름이에요

Comment @coderabbitai help to get the list of available commands.

@kdwkr
kdwkr merged commit d236547 into scatterlab/0.87.1 Sep 11, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant