diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2020-10-01 15:56:43 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-01 15:56:43 -0400 |
commit | 924c510363f406ba3527458e9e13581a4890b6f7 (patch) | |
tree | 2e7bcd82ec658fab08b66c6643cdc4b6418f3ae8 | |
parent | cd0af4519441dbe9afa638c175c1942ea3bc7704 (diff) | |
parent | 3d1967851849eb585c76fe20b7136b8746e9a726 (diff) | |
download | sdl_ios-924c510363f406ba3527458e9e13581a4890b6f7.tar.gz |
Merge pull request #1803 from smartdevicelink/bugfix/issue-1801-github-ci-fail
Fix Github CI and update to Xcode 12 in CI
-rw-r--r-- | .github/workflows/test.yml | 23 | ||||
-rw-r--r-- | SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m | 23 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPControlSessionSpec.m | 2 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPDataSessionSpec.m | 2 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m | 2 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m | 2 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.h | 29 | ||||
-rw-r--r-- | SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.m (renamed from SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m) | 5 | ||||
-rw-r--r-- | carthage-build.sh | 6 |
10 files changed, 69 insertions, 37 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d30dcd7e5..97f5ca6ac 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ on: [push, pull_request] env: PROJECT: 'SmartDeviceLink-iOS.xcodeproj' - DESTINATION: 'platform=iOS Simulator,name=iPhone 11,OS=13.5' + DESTINATION: 'platform=iOS Simulator,name=iPhone 11,OS=14.0' jobs: build: @@ -27,7 +27,7 @@ jobs: # Select the Xcode version (the platform/simulator/OS available for testing depend on the Xcode version) - name: Select Xcode version - run: sudo xcode-select -switch /Applications/Xcode_11.5.app + run: sudo xcode-select -switch /Applications/Xcode_12.0.0.app - name: Build run: set -o pipefail && xcodebuild -scheme "${{ matrix.scheme }}" -destination "$DESTINATION" build | xcpretty --color --simple @@ -40,6 +40,14 @@ jobs: matrix: scheme: ['SmartDeviceLink'] steps: + # Print the available Xcode versions + - name: Get available Xcode versions on the server + run: ls /Applications | grep Xcode + + # Select the Xcode version (the platform/simulator/OS available for testing depend on the Xcode version) + - name: Select Xcode version + run: sudo xcode-select -switch /Applications/Xcode_12.0.0.app + - name: Checkout repository uses: actions/checkout@v2.3.1 with: @@ -55,15 +63,8 @@ jobs: - name: Installing dependencies if: steps.carthage-cache.outputs.cache-hit != 'true' - run: carthage bootstrap --no-use-binaries --platform iOS --cache-builds - - # Print the available Xcode versions - - name: Get available Xcode versions on the server - run: ls /Applications | grep Xcode - - # Select the Xcode version (the platform/simulator/OS available for testing depend on the Xcode version) - - name: Select Xcode version - run: sudo xcode-select -switch /Applications/Xcode_11.5.app + run: bash carthage-build.sh --no-use-binaries --platform iOS --cache-builds + # run: carthage bootstrap --no-use-binaries --platform iOS --cache-builds # Split build into build-only and test-only as it is faster than building and running in one step - name: Building unit tests diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index cdc2edac2..b2ddf4dbf 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -2084,6 +2084,7 @@ 4A4AD8A324894260008FC414 /* TestOldConfigurationUpdateManagerDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = TestOldConfigurationUpdateManagerDelegate.m; path = DevAPISpecs/TestOldConfigurationUpdateManagerDelegate.m; sourceTree = "<group>"; }; 4A4AD8A524894270008FC414 /* TestNewConfigurationUpdateManagerDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestNewConfigurationUpdateManagerDelegate.h; sourceTree = "<group>"; }; 4A4AD8A624894270008FC414 /* TestNewConfigurationUpdateManagerDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestNewConfigurationUpdateManagerDelegate.m; sourceTree = "<group>"; }; + 4A6B0D6125262D130025516A /* EAAccessory+OCMock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "EAAccessory+OCMock.h"; sourceTree = "<group>"; }; 4A877498251BBE2400A8BEBB /* SmartDeviceLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = public/SmartDeviceLink.h; sourceTree = "<group>"; }; 4A8BD22324F93131000945E3 /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = public/SDLMassageCushionFirmness.h; sourceTree = "<group>"; }; 4A8BD22424F93131000945E3 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceData.m; path = public/SDLMediaServiceData.m; sourceTree = "<group>"; }; @@ -4200,6 +4201,15 @@ name = Utilities; sourceTree = "<group>"; }; + 4A6B0D6025262CF50025516A /* Utilities */ = { + isa = PBXGroup; + children = ( + 4A6B0D6125262D130025516A /* EAAccessory+OCMock.h */, + 88DF998C22035CC600477AC1 /* EAAccessory+OCMock.m */, + ); + path = Utilities; + sourceTree = "<group>"; + }; 4A9D02BB2497EEB400FBE99B /* Custom RPC Adapters */ = { isa = PBXGroup; children = ( @@ -6685,7 +6695,7 @@ 88DF998B22035CB100477AC1 /* iAP */ = { isa = PBXGroup; children = ( - 88DF998C22035CC600477AC1 /* EAAccessory+OCMock.m */, + 4A6B0D6025262CF50025516A /* Utilities */, 88DF998E22035D1700477AC1 /* SDLIAPSessionSpec.m */, 88DF999022035D5A00477AC1 /* SDLIAPTransportSpec.m */, 88BCEA942266592D00BB7E70 /* SDLIAPControlSessionSpec.m */, diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m index dfba05a0e..0af01876d 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m @@ -65,6 +65,12 @@ @property (copy, nonatomic) dispatch_queue_t lifecycleQueue; @property (assign, nonatomic) int32_t lastCorrelationId; @property (strong, nonatomic) SDLLanguage currentVRLanguage; +@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; +@property (strong, nonatomic, nullable) SDLLifecycleProtocolHandler *protocolHandler; +@end + +@interface SDLGlobals () +@property (copy, nonatomic, readwrite) SDLVersion *protocolVersion; @end QuickConfigurationBegin(SendingRPCsConfiguration) @@ -84,17 +90,6 @@ QuickConfigurationBegin(SendingRPCsConfiguration) QuickConfigurationEnd -@interface SDLGlobals () -@property (copy, nonatomic, readwrite) SDLVersion *protocolVersion; -@end - - -@interface SDLLifecycleManager () -// reach the private property for testing -@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; -@property (strong, nonatomic, nullable) SDLLifecycleProtocolHandler *protocolHandler; -@end - QuickSpecBegin(SDLLifecycleManagerSpec) @@ -303,7 +298,7 @@ describe(@"a lifecycle manager", ^{ describe(@"after receiving a register app interface response", ^{ __block NSError *fileManagerStartError = [NSError errorWithDomain:@"testDomain" code:0 userInfo:nil]; __block NSError *permissionManagerStartError = [NSError errorWithDomain:@"testDomain" code:0 userInfo:nil]; - + beforeEach(^{ OCMStub([(SDLLockScreenManager *)lockScreenManagerMock start]); OCMStub([fileManagerMock startWithCompletionHandler:([OCMArg invokeBlockWithArgs:@(YES), fileManagerStartError, nil])]); @@ -317,7 +312,7 @@ describe(@"a lifecycle manager", ^{ transitionToState(SDLLifecycleStateRegistered); [NSThread sleepForTimeInterval:0.3]; }); - + it(@"should eventually reach the ready state", ^{ expect(testManager.lifecycleState).toEventually(equal(SDLLifecycleStateReady)); OCMVerify([(SDLLockScreenManager *)lockScreenManagerMock start]); @@ -327,7 +322,7 @@ describe(@"a lifecycle manager", ^{ OCMStub([streamingManagerMock startSecondaryTransportWithProtocol:[OCMArg any]]); } }); - + itBehavesLike(@"unable to send an RPC", ^{ return @{ @"manager": testManager }; }); }); diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPControlSessionSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPControlSessionSpec.m index dbce3da78..ccf85cb28 100644 --- a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPControlSessionSpec.m +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPControlSessionSpec.m @@ -12,7 +12,7 @@ #import "SDLIAPControlSession.h" -#import "EAAccessory+OCMock.m" +#import "EAAccessory+OCMock.h" #import "SDLIAPConstants.h" #import "SDLIAPControlSessionDelegate.h" #import "SDLIAPSession.h" diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPDataSessionSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPDataSessionSpec.m index 5c6112373..1b5e4b001 100644 --- a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPDataSessionSpec.m +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPDataSessionSpec.m @@ -12,7 +12,7 @@ #import "SDLIAPDataSession.h" -#import "EAAccessory+OCMock.m" +#import "EAAccessory+OCMock.h" #import "SDLIAPConstants.h" #import "SDLIAPSession.h" #import "SDLIAPDataSessionDelegate.h" diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m index f253a1d44..8b638afb0 100644 --- a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m @@ -10,7 +10,7 @@ #import <Nimble/Nimble.h> #import <OCMock/OCMock.h> -#import "EAAccessory+OCMock.m" +#import "EAAccessory+OCMock.h" #import "SDLIAPSession.h" #import "SDLIAPConstants.h" diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m index 808ba33bf..57761fd0a 100644 --- a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m @@ -10,7 +10,7 @@ #import <Nimble/Nimble.h> #import <OCMock/OCMock.h> -#import "EAAccessory+OCMock.m" +#import "EAAccessory+OCMock.h" #import "SDLIAPConstants.h" #import "SDLIAPTransport.h" #import "SDLIAPSession.h" diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.h b/SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.h new file mode 100644 index 000000000..8862bbec2 --- /dev/null +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.h @@ -0,0 +1,29 @@ +// +// EAAccessory+OCMock.h +// SmartDeviceLinkTests +// +// Created by Joel Fischer on 10/1/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import <OCMock/OCMock.h> +#import <ExternalAccessory/ExternalAccessory.h> + +@interface EAAccessory (OCMock) + ++ (EAAccessory *)sdlCoreMock; + +@end + +@interface EAAccessoryManager (OCMock) + ++ (EAAccessoryManager *)mockManager; + +@end + +@interface EASession (OCMock) + ++ (EASession *)mockSessionWithAccessory:(EAAccessory *)mockAccessory protocolString:(NSString *)mockProtocolString inputStream:(NSInputStream *)mockInputStream outputStream:(NSOutputStream *)mockOutputStream; + +@end diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m b/SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.m index 1c32c4b73..49dbed6fa 100644 --- a/SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/Utilities/EAAccessory+OCMock.m @@ -6,10 +6,7 @@ // Copyright © 2019 smartdevicelink. All rights reserved. // -#import <Foundation/Foundation.h> -#import <UIKit/UIKit.h> -#import <OCMock/OCMock.h> -#import <ExternalAccessory/ExternalAccessory.h> +#import "EAAccessory+OCMock.h" // Based off of the Pebble Accessory OCKMock by Heiko Behrens https://github.com/HBehrens/PebbleKit-ios-sdk-test/blob/master/PebbleVendor/EAAccessoryFramework%2BOCMock.m diff --git a/carthage-build.sh b/carthage-build.sh index 3c9a86c73..0dcdefdee 100644 --- a/carthage-build.sh +++ b/carthage-build.sh @@ -11,11 +11,11 @@ trap 'rm -f "$xcconfig"' INT TERM HUP EXIT # For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise # the build will fail on lipo due to duplicate architectures. -# Xcode 12 GM (12A7209) -echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_12A7209 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig +CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3) +echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $xcconfig echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig export XCODE_XCCONFIG_FILE="$xcconfig" -carthage build "$@" +carthage build "$@"
\ No newline at end of file |