Skip to content

Commit 39dd754

Browse files
authored
Merge pull request #283 from heoblitz/fix/ci
Fix CI Failures and Improve Test Code
2 parents babea9c + db4fde9 commit 39dd754

File tree

6 files changed

+351
-276
lines changed

6 files changed

+351
-276
lines changed
Lines changed: 136 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,160 @@
11
name: Run CI
22
on: [push, pull_request]
33

4+
env:
5+
XCODE_VERSION: "16.4.0"
6+
IOS_SIMULATOR_DEVICE: "iPhone 16"
7+
IOS_SIMULATOR_OS: "18.4"
8+
TVOS_SIMULATOR_DEVICE: "Apple TV 4K (3rd generation)"
9+
TVOS_SIMULATOR_OS: "18.4"
10+
411
jobs:
512
CI:
6-
runs-on: macos-latest
7-
13+
runs-on: macos-15
14+
815
# ℹ️ Available GitHub Actions Runner Images
916
# https://github.com/actions/runner-images
1017

1118
steps:
1219
- name: Checkout
13-
uses: actions/checkout@v2
20+
uses: actions/checkout@v4
1421

15-
- run: bundle install
16-
- run: pod install --repo-update
22+
- name: Setup CocoaPods
23+
run: pod install --repo-update
1724

18-
- name: Set Xcode Version 14.2.0 (iOS 16.2)
19-
run: sudo xcode-select -s /Applications/Xcode_14.2.0.app
25+
- name: Set Xcode Version
26+
run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app
2027

2128
- name: Build PinLayout-iOS
22-
run: set -o pipefail && xcodebuild build -project PinLayout.xcodeproj -scheme PinLayout-iOS -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty
29+
run: |
30+
set -o pipefail && xcodebuild build \
31+
-project PinLayout.xcodeproj \
32+
-scheme PinLayout-iOS \
33+
-sdk iphonesimulator \
34+
-destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
35+
| xcpretty
2336
2437
- name: Build PinLayout-tvOS
25-
run: set -o pipefail && xcodebuild build -project PinLayout.xcodeproj -scheme PinLayout-tvOS -sdk appletvsimulator16.1 -destination 'platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=16.1' | xcpretty
38+
run: |
39+
set -o pipefail && xcodebuild build \
40+
-project PinLayout.xcodeproj \
41+
-scheme PinLayout-tvOS \
42+
-sdk appletvsimulator \
43+
-destination "platform=tvOS Simulator,name=${{ env.TVOS_SIMULATOR_DEVICE }},OS=${{ env.TVOS_SIMULATOR_OS }}" \
44+
| xcpretty
2645
2746
- name: Build PinLayout-macOS
28-
run: set -o pipefail && xcodebuild build -project PinLayout.xcodeproj -scheme PinLayout-macOS -sdk macosx13.1 | xcpretty
29-
30-
- name: Build PinLayoutSample - iOS 16.2
31-
run: set -o pipefail && xcodebuild build -workspace PinLayout.xcworkspace -scheme PinLayoutSample -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty
32-
33-
- name: iOS unit tests
34-
run: set -o pipefail && xcodebuild build test -workspace PinLayout.xcworkspace -scheme PinLayout-iOS -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty
35-
36-
# # - name: tvOS unit tests
37-
# # run: set -o pipefail && xcodebuild build test -workspace PinLayout.xcworkspace -scheme PinLayout-tvOS -sdk appletvos16.1 -destination 'platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=16.2' | xcpretty
38-
39-
# # - name: macOS unit tests
40-
# # run: set -o pipefail && xcodebuild test -workspace PinLayout.xcworkspace -scheme PinLayout-macOS -sdk macosx12.1 -destination 'platform=macOS,name=Any Mac' | xcpretty
41-
42-
- name: Cocoapods - iOS Empty project
43-
run: set -o pipefail && cd TestProjects/cocoapods/ios && arch -x86_64 pod install && xcodebuild build -workspace PinLayout-iOS.xcworkspace -scheme PinLayout-iOS -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty && cd ../../..
44-
45-
# - name: Cocoapods - macOS Empty project
46-
# run: set -o pipefail && cd TestProjects/cocoapods/macos && arch -x86_64 pod install && xcodebuild build -workspace PinLayout-macOS.xcworkspace -scheme PinLayout-macOS -sdk macosx12.1 | xcpretty && cd ../../..
47-
48-
# - name: Cocoapods - tvOS Empty project
49-
# run: set -o pipefail && cd TestProjects/cocoapods/tvos && arch -x86_64 pod install && xcodebuild build -workspace PinLayout-tvOS.xcworkspace -scheme PinLayout-tvOS -sdk appletvsimulator16.1 -destination 'platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=16.1' | xcpretty && cd ../../..
50-
51-
# - name: Carthage - iOS Empty project
52-
# run: set -o pipefail && cd TestProjects/carthage/ios && rm Cartfile && echo "git \"file:///$BASEDIR\"" > Cartfile && carthage update --use-ssh --platform iOS --use-xcframeworks && xcodebuild build -project PinLayout-Carthage-iOS.xcodeproj -scheme PinLayout-Carthage-iOS -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty && rm Cartfile.resolved && cd ../../..
47+
run: |
48+
set -o pipefail && xcodebuild build \
49+
-project PinLayout.xcodeproj \
50+
-scheme PinLayout-macOS \
51+
-sdk macosx \
52+
| xcpretty
53+
54+
- name: Build PinLayoutSample
55+
run: |
56+
set -o pipefail && xcodebuild build \
57+
-workspace PinLayout.xcworkspace \
58+
-scheme PinLayoutSample \
59+
-sdk iphonesimulator \
60+
-destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
61+
| xcpretty
62+
63+
- name: iOS Unit Tests
64+
run: |
65+
set -o pipefail && xcodebuild build test \
66+
-workspace PinLayout.xcworkspace \
67+
-scheme PinLayout-iOS \
68+
-sdk iphonesimulator \
69+
-destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
70+
| xcpretty
71+
72+
# - name: tvOS Unit Tests
73+
# run: |
74+
# set -o pipefail && xcodebuild build test \
75+
# -workspace PinLayout.xcworkspace \
76+
# -scheme PinLayout-tvOS \
77+
# -sdk appletvsimulator \
78+
# -destination "platform=tvOS Simulator,name=${{ env.TVOS_SIMULATOR_DEVICE }},OS=${{ env.TVOS_SIMULATOR_OS }}" \
79+
# | xcpretty
80+
81+
# - name: macOS Unit Tests
82+
# run: |
83+
# set -o pipefail && xcodebuild test \
84+
# -workspace PinLayout.xcworkspace \
85+
# -scheme PinLayout-macOS \
86+
# -sdk macosx \
87+
# -destination "platform=macOS,name=Any Mac" \
88+
# | xcpretty
89+
90+
- name: Test CocoaPods Integration
91+
run: |
92+
echo "Testing CocoaPods integration..."
93+
cd TestProjects/cocoapods/ios
94+
pod install
95+
set -o pipefail && xcodebuild build \
96+
-workspace PinLayout-iOS.xcworkspace \
97+
-scheme PinLayout-iOS \
98+
-sdk iphonesimulator \
99+
-destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
100+
| xcpretty
101+
cd ../../..
102+
103+
# - name: Test CocoaPods macOS Integration
104+
# run: |
105+
# cd TestProjects/cocoapods/macos
106+
# pod install
107+
# set -o pipefail && xcodebuild build \
108+
# -workspace PinLayout-macOS.xcworkspace \
109+
# -scheme PinLayout-macOS \
110+
# -sdk macosx \
111+
# | xcpretty
112+
# cd ../../..
113+
114+
# - name: Test CocoaPods tvOS Integration
115+
# run: |
116+
# cd TestProjects/cocoapods/tvos
117+
# pod install
118+
# set -o pipefail && xcodebuild build \
119+
# -workspace PinLayout-tvOS.xcworkspace \
120+
# -scheme PinLayout-tvOS \
121+
# -sdk appletvsimulator \
122+
# -destination "platform=tvOS Simulator,name=${{ env.TVOS_SIMULATOR_DEVICE }},OS=${{ env.TVOS_SIMULATOR_OS }}" \
123+
# | xcpretty
124+
# cd ../../..
125+
126+
# - name: Test Carthage Integration
127+
# run: |
128+
# cd TestProjects/carthage/ios
129+
# rm Cartfile
130+
# echo "git \"file:///$GITHUB_WORKSPACE\"" > Cartfile
131+
# carthage update --use-ssh --platform iOS --use-xcframeworks
132+
# set -o pipefail && xcodebuild build \
133+
# -project PinLayout-Carthage-iOS.xcodeproj \
134+
# -scheme PinLayout-Carthage-iOS \
135+
# -sdk iphonesimulator \
136+
# -destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
137+
# | xcpretty
138+
# rm Cartfile.resolved
139+
# cd ../../..
53140

54141
- name: Swift Package Manager - iOS Empty project
55-
run: set -o pipefail && cd TestProjects/swift-package-manager/ios && rm -rf .build && xcodebuild build -project PinLayout-SPM-iOS.xcodeproj -scheme PinLayout-SPM-iOS -sdk iphonesimulator16.2 -destination 'platform=iOS Simulator,name=iPhone SE (3rd generation),OS=16.2' | xcpretty && cd ../../..
56-
57-
- name: Set XCode Version 13.4.1 (iOS 15.5)
58-
run: sudo xcode-select -s /Applications/Xcode_13.4.1.app
59-
- name: Build PinLayoutSample - iOS 15.5
60-
run: set -o pipefail && xcodebuild clean build -workspace PinLayout.xcworkspace -scheme PinLayoutSample -sdk iphonesimulator15.5 -destination 'platform=iOS Simulator,name=iPhone 8,OS=15.5' | xcpretty
61-
62-
- name: Pod lib lint
63-
run: set -o pipefail && bundle exec pod lib lint --allow-warnings
142+
run: |
143+
cd TestProjects/swift-package-manager/ios
144+
rm -rf .build
145+
set -o pipefail && xcodebuild build \
146+
-project PinLayout-SPM-iOS.xcodeproj \
147+
-scheme PinLayout-SPM-iOS \
148+
-sdk iphonesimulator \
149+
-destination "platform=iOS Simulator,name=${{ env.IOS_SIMULATOR_DEVICE }},OS=${{ env.IOS_SIMULATOR_OS }}" \
150+
| xcpretty
151+
cd ../../..
152+
153+
- name: Pod Lib Lint
154+
run: set -o pipefail && pod lib lint --allow-warnings
64155

65156
- name: Codecov
66157
run: bash <(curl -s https://codecov.io/bash) -D /tmp/PinLayout
67158

68-
- run: echo "🍏 This job's status is ${{ job.status }}."
159+
- name: Job Status
160+
run: echo "🍏 This job's status is ${{ job.status }}."

.ruby-version_old

Lines changed: 0 additions & 1 deletion
This file was deleted.

Gemfile

Lines changed: 0 additions & 2 deletions
This file was deleted.

Gemfile.lock

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)