Skip to content

Commit c807dce

Browse files
committed
Fix the CI, re-enable GitHub Actions
1 parent a75add8 commit c807dce

File tree

6 files changed

+187
-30
lines changed

6 files changed

+187
-30
lines changed

.github/workflows/CI.yml

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
name: "SDWebImageSwiftUI CI"
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- '*'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
Pods:
16+
name: Cocoapods Lint
17+
runs-on: macos-11
18+
env:
19+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v2
23+
24+
- name: Install Cocoapods
25+
run: gem install cocoapods --no-document --quiet
26+
27+
- name: Install Xcpretty
28+
run: gem install xcpretty --no-document --quiet
29+
30+
- name: Pod Update.
31+
working-directory: ./Example
32+
run: pod repo update --silent
33+
34+
- name: Pod Install.
35+
working-directory: ./Example
36+
run: pod install
37+
38+
- name: Run SDWebImageSwiftUI podspec lint
39+
working-directory: ./Example
40+
run: |
41+
set -o pipefail
42+
pod lib lint SDWebImageSwiftUI.podspec --allow-warnings --skip-tests
43+
44+
Demo:
45+
name: Run Demo
46+
runs-on: macos-11
47+
env:
48+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
49+
WORKSPACE_NAME: SDWebImageSwiftUI.xcworkspace
50+
OSXSCHEME: SDWebImageSwiftUIDemo-macOS
51+
iOSSCHEME: SDWebImageSwiftUIDemo
52+
TVSCHEME: SDWebImageSwiftUIDemo-tvOS
53+
WATCHSCHEME: SDWebImageSwiftUIDemo-watchOS WatchKit App
54+
strategy:
55+
matrix:
56+
iosDestination: ["name=iPhone 13 Pro"]
57+
tvOSDestination: ["name=Apple TV 4K"]
58+
watchOSDestination: ["platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"]
59+
macOSDestination: ["platform=macOS"]
60+
macCatalystDestination: ["platform=macOS,arch=x86_64,variant=Mac Catalyst"]
61+
steps:
62+
- name: Checkout
63+
uses: actions/checkout@v2
64+
65+
- name: Install Cocoapods
66+
run: gem install cocoapods --no-document --quiet
67+
68+
- name: Install Xcpretty
69+
run: gem install xcpretty --no-document --quiet
70+
71+
- name: Pod Update
72+
working-directory: ./Example
73+
run: pod repo update --silent
74+
75+
- name: Pod Install
76+
working-directory: ./Example
77+
run: pod install
78+
79+
- name: Run demo for OSX
80+
working-directory: ./Example
81+
run: |
82+
set -o pipefail
83+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
84+
85+
- name: Run demo for iOS
86+
working-directory: ./Example
87+
run: |
88+
set -o pipefail
89+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
90+
91+
- name: Run demo for TV
92+
working-directory: ./Example
93+
run: |
94+
set -o pipefail
95+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
96+
97+
- name: Run demo for Watch
98+
working-directory: ./Example
99+
run: |
100+
set -o pipefail
101+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.WATCHSCHEME }}" -destination "${{ matrix.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
102+
103+
Test:
104+
name: Unit Test
105+
runs-on: macos-11
106+
env:
107+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
108+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
109+
OSXSCHEME: SDWebImageSwiftUITests macOS
110+
iOSSCHEME: SDWebImageSwiftUITests
111+
TVSCHEME: SDWebImageSwiftUITests tvOS
112+
strategy:
113+
matrix:
114+
iosDestination: ["platform=iOS Simulator,name=iPhone 13 Pro"]
115+
macOSDestination: ["platform=macOS,arch=x86_64"]
116+
tvOSDestination: ["platform=tvOS Simulator,name=Apple TV 4K"]
117+
steps:
118+
- name: Checkout
119+
uses: actions/checkout@v2
120+
121+
- name: Install Carthage
122+
run: brew install carthage
123+
124+
- name: Carthage Update
125+
run: ./carthage.sh update --platform "iOS, tvOS, macOS"
126+
127+
- name: Clean DerivedData
128+
run: |
129+
rm -rf ~/Library/Developer/Xcode/DerivedData/
130+
mkdir DerivedData
131+
132+
- name: Test - ${{ matrix.iosDestination }}
133+
run: |
134+
set -o pipefail
135+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
136+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
137+
138+
- name: Test - ${{ matrix.macOSDestination }}
139+
run: |
140+
set -o pipefail
141+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
142+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
143+
144+
- name: Test - ${{ matrix.tvOSDestination }}
145+
run: |
146+
set -o pipefail
147+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
148+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
149+
150+
- name: Code Coverage
151+
run: |
152+
set -o pipefail
153+
export PATH="/usr/local/opt/curl/bin:$PATH"
154+
curl --version
155+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/macOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F macos
156+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/iOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F ios
157+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/tvOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F tvos
158+
159+
Build:
160+
name: Build Library
161+
runs-on: macos-11
162+
env:
163+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
164+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
165+
SCHEME_NAME: SDWebImageSwiftUI
166+
steps:
167+
- name: Checkout
168+
uses: actions/checkout@v2
169+
170+
- name: Build the SwiftPM
171+
run: |
172+
set -o pipefail
173+
swift build
174+
rm -rf ~/.build

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ Podfile.lock
4141
# SwiftPM
4242
.build
4343
.swiftpm
44+
Package.resolved

Example/Podfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ def all_pods
88
end
99

1010
target 'SDWebImageSwiftUIDemo' do
11-
platform :ios, '13.0'
11+
platform :ios, '14.0'
1212
all_pods
1313
end
1414

1515
target 'SDWebImageSwiftUIDemo-macOS' do
16-
platform :osx, '10.15'
16+
platform :osx, '11.0'
1717
all_pods
1818
end
1919

2020
target 'SDWebImageSwiftUIDemo-tvOS' do
21-
platform :tvos, '13.0'
21+
platform :tvos, '14.0'
2222
all_pods
2323
end
2424

Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@
961961
GCC_C_LANGUAGE_STANDARD = gnu11;
962962
INFOPLIST_FILE = "SDWebImageSwiftUIDemo-macOS/Info.plist";
963963
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
964-
MACOSX_DEPLOYMENT_TARGET = 10.15;
964+
MACOSX_DEPLOYMENT_TARGET = 11.0;
965965
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
966966
MTL_FAST_MATH = YES;
967967
PRODUCT_BUNDLE_IDENTIFIER = "com.dreampiggy.SDWebImageSwiftUIDemo-macOS";
@@ -993,7 +993,7 @@
993993
GCC_C_LANGUAGE_STANDARD = gnu11;
994994
INFOPLIST_FILE = "SDWebImageSwiftUIDemo-macOS/Info.plist";
995995
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
996-
MACOSX_DEPLOYMENT_TARGET = 10.15;
996+
MACOSX_DEPLOYMENT_TARGET = 11.0;
997997
MTL_FAST_MATH = YES;
998998
PRODUCT_BUNDLE_IDENTIFIER = "com.dreampiggy.SDWebImageSwiftUIDemo-macOS";
999999
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1030,7 +1030,7 @@
10301030
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
10311031
SWIFT_VERSION = 5.0;
10321032
TARGETED_DEVICE_FAMILY = 3;
1033-
TVOS_DEPLOYMENT_TARGET = 13.0;
1033+
TVOS_DEPLOYMENT_TARGET = 14.0;
10341034
};
10351035
name = Debug;
10361036
};
@@ -1059,7 +1059,7 @@
10591059
SDKROOT = appletvos;
10601060
SWIFT_VERSION = 5.0;
10611061
TARGETED_DEVICE_FAMILY = 3;
1062-
TVOS_DEPLOYMENT_TARGET = 13.0;
1062+
TVOS_DEPLOYMENT_TARGET = 14.0;
10631063
};
10641064
name = Release;
10651065
};

SDWebImageSwiftUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

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

carthage.sh

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@
22
# Usage example: ./carthage.sh build --platform iOS
33

44
set -euo pipefail
5-
5+
66
xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
77
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT
8-
8+
99
# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise
1010
# the build will fail on lipo due to duplicate architectures.
1111

12-
CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3)
13-
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
14-
15-
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
16-
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
12+
echo 'EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
13+
echo 'EXCLUDED_ARCHS[sdk=appletvsimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
14+
echo 'EXCLUDED_ARCHS[sdk=watchsimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
1715

1816
export XCODE_XCCONFIG_FILE="$xcconfig"
1917
carthage "$@"

0 commit comments

Comments
 (0)