diff --git a/.github/workflows/xcode-test.yml b/.github/workflows/xcode-test.yml new file mode 100644 index 0000000..db24c2d --- /dev/null +++ b/.github/workflows/xcode-test.yml @@ -0,0 +1,21 @@ +# workflow 의 이름 +name: Xcode Test + +on: + # Epic 브랜치에 push 나 pull request 이벤트가 일어났을때 해당 workflow 를 trigger + push: + branches: [ '**/epic/iOS/**' ] + pull_request: + branches: [ '**/epic/iOS/**' ] + +jobs: + build: + runs-on: macos-latest + + steps: + # uses 키워드를 통해 Github Actions에서 기본으로 제공하는 액션을 사용 가능. 아래 액션은 repository 에 체크아웃하는 것 + - uses: actions/checkout@v2 + # shell 이용해서 하나의 command 수행 + - name: 🛠 Start xcode build + run: | + xcodebuild clean test -project iOS/MaybeGamsung/MaybeGamsung.xcodeproj -scheme MaybeGamsung -destination 'platform=iOS Simulator,name=iPhone 11 Pro,OS=latest' \ No newline at end of file diff --git a/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.pbxproj b/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.pbxproj index a96a19c..8cf74ee 100644 --- a/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.pbxproj +++ b/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.pbxproj @@ -16,8 +16,19 @@ DD10AA322AFB874C00F5828A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DD10AA302AFB874C00F5828A /* Main.storyboard */; }; DD10AA342AFB874D00F5828A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DD10AA332AFB874D00F5828A /* Assets.xcassets */; }; DD10AA372AFB874D00F5828A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DD10AA352AFB874D00F5828A /* LaunchScreen.storyboard */; }; + DD10AA452AFCF6FE00F5828A /* MaybeGamsungTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD10AA442AFCF6FE00F5828A /* MaybeGamsungTests.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + DD10AA462AFCF6FE00F5828A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DD10AA1F2AFB874C00F5828A /* Project object */; + proxyType = 1; + remoteGlobalIDString = DD10AA262AFB874C00F5828A; + remoteInfo = MaybeGamsung; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXFileReference section */ 2179E5ED2AFB94D500746FD8 /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = ""; }; 2179E5F12AFBA08700746FD8 /* .swiftformat */ = {isa = PBXFileReference; explicitFileType = text.yaml; path = .swiftformat; sourceTree = ""; }; @@ -30,6 +41,8 @@ DD10AA332AFB874D00F5828A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; DD10AA362AFB874D00F5828A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; DD10AA382AFB874D00F5828A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DD10AA422AFCF6FE00F5828A /* MaybeGamsungTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MaybeGamsungTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DD10AA442AFCF6FE00F5828A /* MaybeGamsungTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaybeGamsungTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -40,6 +53,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + DD10AA3F2AFCF6FE00F5828A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -50,6 +70,7 @@ 2179E5F12AFBA08700746FD8 /* .swiftformat */, 2179E5ED2AFB94D500746FD8 /* .swiftlint.yml */, DD10AA292AFB874C00F5828A /* MaybeGamsung */, + DD10AA432AFCF6FE00F5828A /* MaybeGamsungTests */, DD10AA282AFB874C00F5828A /* Products */, ); sourceTree = ""; @@ -58,6 +79,7 @@ isa = PBXGroup; children = ( DD10AA272AFB874C00F5828A /* MaybeGamsung.app */, + DD10AA422AFCF6FE00F5828A /* MaybeGamsungTests.xctest */, ); name = Products; sourceTree = ""; @@ -76,6 +98,14 @@ path = MaybeGamsung; sourceTree = ""; }; + DD10AA432AFCF6FE00F5828A /* MaybeGamsungTests */ = { + isa = PBXGroup; + children = ( + DD10AA442AFCF6FE00F5828A /* MaybeGamsungTests.swift */, + ); + path = MaybeGamsungTests; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -98,6 +128,24 @@ productReference = DD10AA272AFB874C00F5828A /* MaybeGamsung.app */; productType = "com.apple.product-type.application"; }; + DD10AA412AFCF6FE00F5828A /* MaybeGamsungTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DD10AA4A2AFCF6FE00F5828A /* Build configuration list for PBXNativeTarget "MaybeGamsungTests" */; + buildPhases = ( + DD10AA3E2AFCF6FE00F5828A /* Sources */, + DD10AA3F2AFCF6FE00F5828A /* Frameworks */, + DD10AA402AFCF6FE00F5828A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DD10AA472AFCF6FE00F5828A /* PBXTargetDependency */, + ); + name = MaybeGamsungTests; + productName = MaybeGamsungTests; + productReference = DD10AA422AFCF6FE00F5828A /* MaybeGamsungTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -111,6 +159,10 @@ DD10AA262AFB874C00F5828A = { CreatedOnToolsVersion = 15.0.1; }; + DD10AA412AFCF6FE00F5828A = { + CreatedOnToolsVersion = 15.0.1; + TestTargetID = DD10AA262AFB874C00F5828A; + }; }; }; buildConfigurationList = DD10AA222AFB874C00F5828A /* Build configuration list for PBXProject "MaybeGamsung" */; @@ -127,6 +179,7 @@ projectRoot = ""; targets = ( DD10AA262AFB874C00F5828A /* MaybeGamsung */, + DD10AA412AFCF6FE00F5828A /* MaybeGamsungTests */, ); }; /* End PBXProject section */ @@ -145,6 +198,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + DD10AA402AFCF6FE00F5828A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -199,8 +259,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + DD10AA3E2AFCF6FE00F5828A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD10AA452AFCF6FE00F5828A /* MaybeGamsungTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + DD10AA472AFCF6FE00F5828A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DD10AA262AFB874C00F5828A /* MaybeGamsung */; + targetProxy = DD10AA462AFCF6FE00F5828A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ DD10AA302AFB874C00F5828A /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -406,6 +482,44 @@ }; name = Release; }; + DD10AA482AFCF6FE00F5828A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = B3PWYBKFUK; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = kr.codesquad.boostcmp8.MaybeGamsungTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MaybeGamsung.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MaybeGamsung"; + }; + name = Debug; + }; + DD10AA492AFCF6FE00F5828A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = B3PWYBKFUK; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = kr.codesquad.boostcmp8.MaybeGamsungTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MaybeGamsung.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MaybeGamsung"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -427,6 +541,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + DD10AA4A2AFCF6FE00F5828A /* Build configuration list for PBXNativeTarget "MaybeGamsungTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DD10AA482AFCF6FE00F5828A /* Debug */, + DD10AA492AFCF6FE00F5828A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = DD10AA1F2AFB874C00F5828A /* Project object */; diff --git a/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.xcworkspace/xcuserdata/nomatterjun.xcuserdatad/UserInterfaceState.xcuserstate b/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.xcworkspace/xcuserdata/nomatterjun.xcuserdatad/UserInterfaceState.xcuserstate index 5959470..3173b37 100644 Binary files a/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.xcworkspace/xcuserdata/nomatterjun.xcuserdatad/UserInterfaceState.xcuserstate and b/iOS/MaybeGamsung/MaybeGamsung.xcodeproj/project.xcworkspace/xcuserdata/nomatterjun.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/iOS/MaybeGamsung/MaybeGamsungTests/MaybeGamsungTests.swift b/iOS/MaybeGamsung/MaybeGamsungTests/MaybeGamsungTests.swift new file mode 100644 index 0000000..ce4eb89 --- /dev/null +++ b/iOS/MaybeGamsung/MaybeGamsungTests/MaybeGamsungTests.swift @@ -0,0 +1,12 @@ +// +// MaybeGamsungTests.swift +// MaybeGamsungTests +// +// Created by 이창준 on 11/9/23. +// + +import XCTest + +final class MaybeGamsungTests: XCTestCase { + func testExample() throws {} +}