Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build Test

on:
pull_request:
branches:
- develop

jobs:
Build:
runs-on: macos-15
Copy link

@coderabbitai coderabbitai bot May 27, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue

runs-on macOS 버전 검증 필요
macos-15 러너는 현재 GitHub Actions에서 지원되지 않을 수 있습니다. macos-latest 또는 macos-13으로 변경을 권장합니다.

🤖 Prompt for AI Agents
In .github/workflows/build.yml at line 10, the runner version 'macos-15' may not
be supported by GitHub Actions. Change the 'runs-on' value to a supported
version such as 'macos-latest' or 'macos-13' to ensure compatibility and
successful workflow execution.

Copy link
Member Author

Choose a reason for hiding this comment

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

이 부분은 latest로 진행시 버전이 다운되서 build 테스트가 안될때가 있어서 15버전으로 강제했습니다!

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

@alstjr7437 감사합니다! 버전 다운그레이드로 인한 빌드 실패 이슈를 해결하기 위해 macos-15를 명시적으로 지정하신 것 잘 이해했습니다.

실제로 macos-latest를 사용할 때 예상과 다른 macOS 버전이 할당되어 Xcode나 iOS 시뮬레이터 호환성 문제가 발생할 수 있다는 점이 합리적인 접근 방식입니다. 특히 iOS 개발 환경에서는 Xcode와 macOS 버전 간의 호환성이 중요하기 때문에 안정적인 빌드를 위해 특정 버전을 고정하는 것이 좋은 선택입니다.


🌐 Web query:

GitHub Actions macos-15 runner availability support 2024 2025

💡 Result:

As of May 27, 2025, GitHub Actions provides support for macOS 15 (Sequoia) runners, which became generally available in April 2025. (github.blog) These runners are available for all GitHub-hosted workflows and can be specified in your workflow files using the runs-on key with values such as macos-15, macos-15-xlarge, or macos-15-large.

In October 2024, GitHub announced the deprecation of the macOS 12 runner image, with full retirement completed by December 3, 2024. (github.com) This means that workflows using the macos-12 label are no longer supported.

For workflows requiring larger resources, GitHub offers macOS larger runners with enhanced specifications. These include:

  • Large Runner: Intel-based with 12 vCPUs, 30 GB RAM, and 14 GB SSD storage.
  • XLarge Runner: ARM64 (M1) based with 6 vCPUs (plus 8 GPU hardware acceleration), 14 GB RAM, and 14 GB SSD storage.

To utilize these larger runners, update the runs-on key in your workflow file to the appropriate label, such as macos-15-large or macos-15-xlarge. (docs.github.com)

For the most current information on available runner images and their specifications, refer to the GitHub Actions Changelog and the GitHub Actions Documentation.

Citations:


@alstjr7437 완전히 맞는 판단이셨습니다!

확인 결과, macos-15 러너는 2025년 4월부터 GitHub Actions에서 정식 지원되고 있어 사용에 전혀 문제가 없습니다. 오히려 macos-latest를 사용할 때 발생할 수 있는 예상치 못한 버전 변경으로 인한 빌드 실패를 방지하기 위해 특정 버전을 명시하신 것이 매우 현명한 접근 방식입니다.

특히 iOS 개발 환경에서는 Xcode와 macOS 버전 간의 호환성이 중요하기 때문에, 안정적인 CI/CD 파이프라인을 위해 macos-15로 고정하신 결정이 좋습니다. 이전 제안을 철회하고, 현재 설정을 그대로 유지하시는 것을 권장합니다.


✏️ Learnings added
Learnt from: alstjr7437
PR: the-spot-campus/MatzipBook-iOS#9
File: .github/workflows/build.yml:10-10
Timestamp: 2025-05-27T13:36:29.807Z
Learning: iOS 프로젝트의 GitHub Actions에서 macos-latest 대신 특정 macOS 버전(예: macos-15)을 사용하는 것이 빌드 안정성을 위해 선호될 수 있음. macos-latest 사용 시 버전 다운그레이드로 인한 빌드 테스트 실패가 발생할 수 있음.

Learnt from: alstjr7437
PR: the-spot-campus/MatzipBook-iOS#9
File: .github/workflows/build.yml:10-10
Timestamp: 2025-05-27T13:36:29.807Z
Learning: iOS 프로젝트의 GitHub Actions에서 macos-latest 대신 특정 macOS 버전(예: macos-15)을 사용하는 것이 빌드 안정성을 위해 선호될 수 있음. macos-latest 사용 시 버전 다운그레이드로 인한 빌드 테스트 실패가 발생할 수 있어, 특정 버전 고정이 더 안정적임. macos-15는 2025년 4월부터 GitHub Actions에서 정식 지원됨.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


steps:
# 저장소의 코드를 체크아웃
- name: Checkout project
uses: actions/checkout@v4

- name: Set up Ruby (for CocoaPods)
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2

- name: Install CocoaPods
run: sudo gem install cocoapods

- name: Install dependencies via CocoaPods
run: pod install
working-directory: MatzipBook

- name: Start xcode build 🛠
run: |
xcodebuild \
-workspace MatzipBook/MatzipBook.xcworkspace \
-scheme MatzipBook \
-sdk iphonesimulator \
-skipPackagePluginValidation \
clean build
32 changes: 16 additions & 16 deletions MatzipBook/MatzipBook.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@

/* Begin PBXBuildFile section */
05493BC92DDB728C00C458AA /* .swiftlint.yml in Resources */ = {isa = PBXBuildFile; fileRef = 05493BC82DDB728C00C458AA /* .swiftlint.yml */; };
2911871D7EA12F34B51A9591 /* Pods_MatzipBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C78D5699075756CCA49F22C3 /* Pods_MatzipBook.framework */; };
6979A438999189D38595F136 /* Pods_MatzipBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDF0615D904C5C97DFA75012 /* Pods_MatzipBook.framework */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
05493BC82DDB728C00C458AA /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = "<group>"; };
05E5F5B72D956A6A00F0CB97 /* MatzipBook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MatzipBook.app; sourceTree = BUILT_PRODUCTS_DIR; };
952BA5C845F95447DB6ADCF4 /* Pods-MatzipBook.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MatzipBook.debug.xcconfig"; path = "Target Support Files/Pods-MatzipBook/Pods-MatzipBook.debug.xcconfig"; sourceTree = "<group>"; };
A4B1F71EF0F68B5036ED0128 /* Pods-MatzipBook.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MatzipBook.release.xcconfig"; path = "Target Support Files/Pods-MatzipBook/Pods-MatzipBook.release.xcconfig"; sourceTree = "<group>"; };
C78D5699075756CCA49F22C3 /* Pods_MatzipBook.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MatzipBook.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AABB485B393096F592287E72 /* Pods-MatzipBook.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MatzipBook.debug.xcconfig"; path = "Target Support Files/Pods-MatzipBook/Pods-MatzipBook.debug.xcconfig"; sourceTree = "<group>"; };
AFD3FA43BE21ADE1EA6436F3 /* Pods-MatzipBook.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MatzipBook.release.xcconfig"; path = "Target Support Files/Pods-MatzipBook/Pods-MatzipBook.release.xcconfig"; sourceTree = "<group>"; };
CDF0615D904C5C97DFA75012 /* Pods_MatzipBook.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MatzipBook.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
Expand Down Expand Up @@ -45,7 +45,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
2911871D7EA12F34B51A9591 /* Pods_MatzipBook.framework in Frameworks */,
6979A438999189D38595F136 /* Pods_MatzipBook.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -59,7 +59,7 @@
05E5F5B92D956A6A00F0CB97 /* MatzipBook */,
05E5F5B82D956A6A00F0CB97 /* Products */,
E62E82F3E597652647D93078 /* Pods */,
23270A2D36A9A8462440AF3B /* Frameworks */,
733CF51A563DB87AD2F2BB31 /* Frameworks */,
);
sourceTree = "<group>";
};
Expand All @@ -71,19 +71,19 @@
name = Products;
sourceTree = "<group>";
};
23270A2D36A9A8462440AF3B /* Frameworks */ = {
733CF51A563DB87AD2F2BB31 /* Frameworks */ = {
isa = PBXGroup;
children = (
C78D5699075756CCA49F22C3 /* Pods_MatzipBook.framework */,
CDF0615D904C5C97DFA75012 /* Pods_MatzipBook.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
E62E82F3E597652647D93078 /* Pods */ = {
isa = PBXGroup;
children = (
952BA5C845F95447DB6ADCF4 /* Pods-MatzipBook.debug.xcconfig */,
A4B1F71EF0F68B5036ED0128 /* Pods-MatzipBook.release.xcconfig */,
AABB485B393096F592287E72 /* Pods-MatzipBook.debug.xcconfig */,
AFD3FA43BE21ADE1EA6436F3 /* Pods-MatzipBook.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
Expand All @@ -95,7 +95,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 05E5F5CA2D956A6C00F0CB97 /* Build configuration list for PBXNativeTarget "MatzipBook" */;
buildPhases = (
70D62D16347C25F42989066F /* [CP] Check Pods Manifest.lock */,
229A18452F0F1269E3EE4A8C /* [CP] Check Pods Manifest.lock */,
05493BC72DDB71D900C458AA /* SwiftLint Script */,
05E5F5B32D956A6A00F0CB97 /* Sources */,
05E5F5B42D956A6A00F0CB97 /* Frameworks */,
Expand Down Expand Up @@ -178,7 +178,7 @@
shellPath = /bin/sh;
shellScript = "if [[ \"$(uname -m)\" == arm64 ]]; then\n export PATH=\"/opt/homebrew/bin:$PATH\"\nfi\n\nif which swiftlint > /dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
};
70D62D16347C25F42989066F /* [CP] Check Pods Manifest.lock */ = {
229A18452F0F1269E3EE4A8C /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
Expand Down Expand Up @@ -215,13 +215,13 @@
/* Begin XCBuildConfiguration section */
05E5F5CB2D956A6C00F0CB97 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 952BA5C845F95447DB6ADCF4 /* Pods-MatzipBook.debug.xcconfig */;
baseConfigurationReference = AABB485B393096F592287E72 /* Pods-MatzipBook.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7WULLR98GP;
DEVELOPMENT_TEAM = "";
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MatzipBook/Info.plist;
Expand Down Expand Up @@ -251,13 +251,13 @@
};
05E5F5CC2D956A6C00F0CB97 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A4B1F71EF0F68B5036ED0128 /* Pods-MatzipBook.release.xcconfig */;
baseConfigurationReference = AFD3FA43BE21ADE1EA6436F3 /* Pods-MatzipBook.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7WULLR98GP;
DEVELOPMENT_TEAM = "";
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MatzipBook/Info.plist;
Expand Down