Skip to content

fix: 포크 Mac CI 설정과 SDK별 모듈 호환 오류를 수정한다 - #104

Merged
Roy-wonji merged 2 commits into
developfrom
fix/ci
Oct 16, 2026
Merged

Roy-wonji merged 2 commits into
developfrom
fix/ci

Conversation

@Roy-wonji

@Roy-wonji Roy-wonji commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

포크 PR에서 저장소 secrets가 전달되지 않으면 같은 Mac 러너에서도 설정 복원과 Tuist 인증이 실패했습니다. 또한 SDK 27.0으로 만든 Tuist 바이너리가 로컬 SDK 27.1 프로젝트에 사용되면서 Swift 모듈 호환 오류가 발생했습니다. Mac의 기존 설정·인증을 사용하고 현재 SDK의 소스로 테스트 산출물을 빌드하도록 수정합니다.

변경 내용

  • 설정은 저장소 secrets를 우선 사용하고, 없으면 Mac의 ~/.config/ddd-attendance-ci에서 복원합니다. IOS_LOCAL_CONFIG_ROOT 저장소 변수로 경로를 지정할 수 있습니다.
  • 실제 CI 토큰이 있을 때만 TUIST_TOKEN을 전달해 빈 값이 Mac의 저장된 Tuist 로그인을 덮어쓰지 않게 합니다.
  • 로컬 Tuist 생성의 기본 캐시 프로필을 none으로 변경하고 PR/develop 테스트 빌드에 --no-binary-cache를 적용합니다. Xcode 컴파일 캐시와 shard 산출물 재사용은 유지합니다.
  • develop 캐시 워밍은 only-external 프로필을 명시해 기존 캐시 생산 동작을 유지합니다.
  • 빈 shard matrix에 기본값을 적용합니다. 포크 PR은 댓글 대신 Actions 요약으로 결과를 제공합니다.
  • 기존 PR 트리거와 self-hosted 실행 방식을 유지하며 실제 설정 파일·인증 정보는 커밋에 포함하지 않습니다.

검증

  • SDK 27.1 시뮬레이터에서 보고된 9개 타깃 및 의존 모듈의 독립 Xcode 빌드 성공
  • 기본 tuist generate --no-open 성공, 해당 9개 프로젝트에서 이전 Tuist 바이너리 참조 제거 확인
  • Node CI·리포트·Swift 모듈 설정 회귀 검사 23개 통과
  • Python 설정 복원·토큰 처리 검사 7개 통과
  • actionlint, Bash 문법, git diff --check 통과
  • 실제 Mac 설정 snapshot의 임시 checkout 복원 및 필수 파일 4개 일치 확인
  • 독립 코드 검토 완료

검증 범위

전체 GitHub shard 테스트와 실제 포크 PR 실행 결과는 후속 CI에서 확인해야 합니다. 로컬 빌드에서는 SDK 불일치가 확인됐으며 CI의 같은 모듈 오류에 대응하는 설정을 적용했습니다. Claude 교차 검토는 CLI 시간 초과로 완료하지 못했습니다. checkout@v4의 Node.js 20 경고는 이번 Swift 모듈 오류와 별개이며 이번 변경에 포함하지 않았습니다.

포크 코드가 Mac의 로컬 설정과 인증에 접근하는 기존 실행 구조를 유지합니다.

포크 PR에 저장소 secrets가 전달되지 않으면 Mac의 로컬 설정과 Tuist 로그인을 사용한다.
기존 self-hosted 테스트 경로를 유지하고 빈 shard 및 댓글 권한 오류를 처리한다.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T15:02:44.530787Z 0824cfb New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 719f445dcb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

cancel-in-progress: true

env:
IOS_LOCAL_CONFIG_ROOT: ${{ vars.IOS_LOCAL_CONFIG_ROOT }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Isolate fork builds from runner-local credentials

For any untrusted fork PR, this workflow now resolves IOS_LOCAL_CONFIG_ROOT, copies that Mac-local configuration into the checkout, and deliberately retains the runner's saved Tuist login before executing PR-controlled manifests and scripts. A fork can therefore exfiltrate the restored files or perform authenticated Tuist operations; GitHub explicitly warns that fork PRs can compromise persistent self-hosted runners and their secrets. Run fork jobs on an ephemeral credential-free runner, or separate the untrusted build from a trusted, approved workflow that accesses these resources. GitHub self-hosted runner security guidance

Useful? React with 👍 / 👎.

@tuist

tuist Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🛠️ Tuist Run Report 🛠️

Tests 🧪

Scheme Status Xcode cache hit rate Ran test modules Commit
DDDAttendance ✅ 0 % 30/30 ccf471313

Builds 🔨

Scheme Status Duration Commit
DDDAttendance-Stage ✅ 1m 7s ccf471313

Bundles 🧰

Bundle Commit Install size Download size
DDD 출석 ccf471313
93.1 MB
Δ -26.5 MB (-22.16%)
27.0 MB

@Roy-wonji Roy-wonji changed the title fix: 포크 PR에서도 Mac의 설정과 인증으로 CI를 실행한다 fix: 포크 Mac CI 설정과 SDK별 모듈 호환 오류를 수정한다 Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

✅ 테스트 통과

862 passed · 15m 4s · 총 862개

iPhone (iOS Simulator 27.1) · Tuist 테스트 실행 · Tuist 빌드 실행 · 0824cfb · 워크플로 로그

📦 Bundle 크기

Bundle Install size Download size
DDD 출석 93.1 MB 27.0 MB

📊 커버리지 51.5% (15,391 / 29,905 라인)

🟡 ██████████░░░░░░░░░░

모듈별 커버리지
모듈 커버리지 라인
🔴 DDDThirdParty ░░░░░░░░░░░░░░░░░░░░ 0.0% 0 / 15
🔴 DomainAssembly ░░░░░░░░░░░░░░░░░░░░ 0.0% 0 / 7
🔴 FeatureSharedUI ░░░░░░░░░░░░░░░░░░░░ 0.0% 0 / 330
🔴 DDDAuthInterface ██░░░░░░░░░░░░░░░░░░ 9.1% 2 / 22
🔴 Member ████░░░░░░░░░░░░░░░░ 17.5% 635 / 3,620
🔴 DDDDesignKit ██████░░░░░░░░░░░░░░ 29.4% 1,013 / 3,443
🟡 Management ██████░░░░░░░░░░░░░░ 30.0% 1,616 / 5,385
🟡 OnBoarding ███████░░░░░░░░░░░░░ 36.4% 1,134 / 3,118
🟡 AuthDomain █████████░░░░░░░░░░░ 45.1% 314 / 697
🟡 MyPageDomainInterface ██████████░░░░░░░░░░ 50.0% 23 / 46
🟡 OnBoardingDomain ███████████░░░░░░░░░ 54.8% 212 / 387
🟡 AttendanceDomain ████████████░░░░░░░░ 58.0% 142 / 245
🟢 DDDSharedUI ████████████░░░░░░░░ 60.8% 904 / 1,488
🟢 DDDAttendance █████████████░░░░░░░ 64.2% 946 / 1,473
🟢 DDDNetwork ██████████████░░░░░░ 70.3% 319 / 454
🟢 DDDNetworkInterface ██████████████░░░░░░ 71.6% 116 / 162
🟢 QRCodeDomain ██████████████░░░░░░ 71.9% 87 / 121
🟢 QRCodeDomainInterface ███████████████░░░░░ 73.1% 49 / 67
🟢 CoreAssembly ███████████████░░░░░ 75.0% 9 / 12
🟢 ScheduleDomainInterface ███████████████░░░░░ 76.5% 62 / 81
🟢 DDDCoreUtility ███████████████░░░░░ 77.1% 121 / 157
🟢 ProfileDomain ████████████████░░░░ 78.9% 291 / 369
🟢 VoteDomainInterface ████████████████░░░░ 79.4% 231 / 291
🟢 MyPageDomain ████████████████░░░░ 79.4% 54 / 68
🟢 ServiceAssembly ████████████████░░░░ 81.8% 27 / 33
🟢 ProfileDomainInterface █████████████████░░░ 82.9% 377 / 455
🟢 AppUpdateDomain █████████████████░░░ 82.9% 136 / 164
🟢 VoteDomain █████████████████░░░ 83.2% 415 / 499
🟢 DDDAuth █████████████████░░░ 84.2% 165 / 196
🟢 DDDStorage █████████████████░░░ 85.1% 422 / 496
🟢 DDDStorageInterface █████████████████░░░ 85.5% 118 / 138
🟢 AuthDomainInterface █████████████████░░░ 86.1% 877 / 1,019
🟢 DDDAnimation ██████████████████░░ 87.5% 21 / 24
🟢 AttendanceDomainInterface ██████████████████░░ 88.3% 424 / 480
🟢 Auth ██████████████████░░ 88.9% 448 / 504
🟢 ScheduleDomain ██████████████████░░ 89.7% 183 / 204
🟢 DDDCoreUI ██████████████████░░ 90.0% 117 / 130
🟢 AppUpdateDomainInterface ███████████████████░ 93.5% 58 / 62
🟢 OnBoardingDomainInterface ███████████████████░ 94.4% 761 / 806
🟢 Profile ███████████████████░ 96.7% 1,710 / 1,769
🟢 Web ███████████████████░ 96.7% 234 / 242
🟢 APIEndpoint ███████████████████░ 98.3% 407 / 414
🟢 DDDCoreLogger ███████████████████░ 98.3% 59 / 60
🟢 API ████████████████████ 100.0% 146 / 146
🟢 DDDAccessibility ████████████████████ 100.0% 3 / 3
🟢 DDDConfig ████████████████████ 100.0% 3 / 3

@Roy-wonji
Roy-wonji merged commit 2c20552 into develop Oct 16, 2026
6 checks passed
@Roy-wonji
Roy-wonji deleted the fix/ci branch October 16, 2026 15:38
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