forked from SDWebImage/SDWebImage
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cdc40b1
commit e8f7c19
Showing
1 changed file
with
181 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
name: "Testing issue-9511" | ||
|
||
on: | ||
push | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
Lint: | ||
name: Cocoapods Lint | ||
runs-on: macos-14 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_15.2.app | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Cocoapods | ||
run: gem install cocoapods --no-document --quiet | ||
|
||
- name: Install Xcpretty | ||
run: gem install xcpretty --no-document --quiet | ||
|
||
- name: Pod Update | ||
run: pod repo update --silent | ||
|
||
- name: Pod Install | ||
run: pod install | ||
|
||
- name: Run SDWebImage podspec lint | ||
run: | | ||
set -o pipefail | ||
pod lib lint SDWebImage.podspec --allow-warnings --skip-tests | ||
Demo: | ||
name: Cocoapods Demo | ||
runs-on: macos-14 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_15.2.app | ||
WORKSPACE_NAME: SDWebImage.xcworkspace | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
iosDestination: platform=iOS Simulator,name=iPhone 15 Pro | ||
macOSDestination: platform=macOS,arch=x86_64 | ||
macCatalystDestination: platform=macOS,arch=x86_64,variant=Mac Catalyst | ||
tvOSDestination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation) | ||
watchOSDestination: platform=watchOS Simulator,name=Apple Watch Series 9 (45mm) | ||
visionOSDestination: platform=visionOS Simulator,name=Apple Vision Pro | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Cocoapods | ||
run: gem install cocoapods --no-document --quiet | ||
|
||
- name: Install Xcpretty | ||
run: gem install xcpretty --no-document --quiet | ||
|
||
- name: Pod Update | ||
run: pod repo update --silent | ||
|
||
- name: Pod Install | ||
run: pod install | ||
|
||
- name: Run demo for OSX | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage OSX Demo" -destination "${{ env.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
- name: Run demo for iOS | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage iOS Demo" -destination "${{ env.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
- name: Run demo for TV | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage TV Demo" -destination "${{ env.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
- name: Run demo for Watch | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage Watch Demo" -destination "${{ env.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
- name: Run demo for Vision | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage Vision Demo" -destination "${{ env.visionOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
Test: | ||
name: Unit Test | ||
runs-on: macos-14 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_15.2.app | ||
WORKSPACE_NAME: SDWebImage.xcworkspace | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
# use matrix to generate jobs for each platform | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
platform: [iOS, macOS, tvOS, visionOS] | ||
include: | ||
- platform: iOS | ||
destination: platform=iOS Simulator,name=iPhone 15 Pro | ||
scheme: iOS | ||
- platform: macOS | ||
destination: platform=macOS,arch=x86_64 | ||
scheme: Mac | ||
- platform: tvOS | ||
destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation) | ||
scheme: TV | ||
- platform: visionOS | ||
destination: platform=visionOS Simulator,name=Apple Vision Pro | ||
scheme: Vision | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Cocoapods | ||
run: gem install cocoapods --no-document --quiet | ||
|
||
- name: Install Xcpretty | ||
run: gem install xcpretty --no-document --quiet | ||
|
||
- name: Pod Update | ||
run: pod repo update --silent | ||
|
||
- name: Pod Install | ||
run: pod install | ||
|
||
- name: Clean DerivedData | ||
run: | | ||
rm -rf ~/Library/Developer/Xcode/DerivedData/ | ||
mkdir DerivedData | ||
- if: ${{ matrix.platform }} == visionOS | ||
run: xcrun simctl boot "Apple Vision Pro" | ||
|
||
- name: Run test | ||
run: | | ||
set -o pipefail | ||
xcodebuild build-for-testing -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests ${{ matrix.scheme }}" -destination "${{ matrix.destination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c | ||
xcodebuild test-without-building -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests ${{ matrix.scheme }}" -destination "${{ matrix.destination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | ||
mv ~/Library/Developer/Xcode/DerivedData/ "./DerivedData/${{ matrix.platform }}" | ||
- name: Code Coverage | ||
run: | | ||
set -o pipefail | ||
export PATH="/usr/local/opt/curl/bin:$PATH" | ||
curl --version | ||
bash <(curl -s https://codecov.io/bash) -v -D "./DerivedData/${{ matrix.platform }}" -J '^SDWebImage$' -c -X gcov -F "${{ matrix.platform }}" | ||
Build: | ||
name: Build Library | ||
runs-on: macos-14 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_15.2.app | ||
PROJECT_NAME: SDWebImage.xcodeproj | ||
SCHEME_NAME: SDWebImage | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Build the SwiftPM | ||
run: | | ||
set -o pipefail | ||
swift build | ||
rm -rf ~/.build | ||
- name: Build as static library | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "SDWebImage static" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Debug | xcpretty -c | ||
rm -rf ~/Library/Developer/Xcode/DerivedData/ | ||
- name: Build as dynamic frameworks | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk macosx -configuration Debug | xcpretty -c | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Debug | xcpretty -c | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk appletvsimulator -configuration Debug | xcpretty -c | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk watchsimulator -configuration Debug | xcpretty -c | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS,arch=x86_64,variant=Mac Catalyst" -configuration Debug | xcpretty -c | ||
xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk xrsimulator -configuration Debug | xcpretty -c | ||
rm -rf ~/Library/Developer/Xcode/DerivedData/ |