| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- name: "SDWebImage CI"
- on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - '*'
- permissions:
- contents: read
- jobs:
- Pods:
- name: Cocoapods Lint
- runs-on: macos-11
- env:
- DEVELOPER_DIR: /Applications/Xcode_13.2.1.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: Run Demo
- runs-on: macos-11
- env:
- DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
- WORKSPACE_NAME: SDWebImage.xcworkspace
- OSXSCHEME: SDWebImage OSX Demo
- iOSSCHEME: SDWebImage iOS Demo
- TVSCHEME: SDWebImage TV Demo
- WATCHSCHEME: SDWebImage Watch Demo
- strategy:
- matrix:
- iosDestination: ["name=iPhone 13 Pro"]
- tvOSDestination: ["name=Apple TV 4K"]
- watchOSDestination: ["platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"]
- macOSDestination: ["platform=macOS"]
- macCatalystDestination: ["platform=macOS,arch=x86_64,variant=Mac Catalyst"]
- 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 "${{ env.OSXSCHEME }}" -destination "${{ matrix.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 "${{ env.iOSSCHEME }}" -destination "${{ matrix.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 "${{ env.TVSCHEME }}" -destination "${{ matrix.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 "${{ env.WATCHSCHEME }}" -destination "${{ matrix.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
-
- Test:
- name: Unit Test
- runs-on: macos-11
- env:
- DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
- WORKSPACE_NAME: SDWebImage.xcworkspace
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- strategy:
- matrix:
- iosDestination: ["platform=iOS Simulator,name=iPhone 13 Pro"]
- macOSDestination: ["platform=macOS,arch=x86_64"]
- tvOSDestination: ["platform=tvOS Simulator,name=Apple TV 4K"]
- 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
-
- - name: Test - ${{ matrix.iosDestination }}
- run: |
- set -o pipefail
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests iOS" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
-
- - name: Test - ${{ matrix.macOSDestination }}
- run: |
- set -o pipefail
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests Mac" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
-
- - name: Test - ${{ matrix.tvOSDestination }}
- run: |
- set -o pipefail
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests TV" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
-
- - 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/macOS' -J '^SDWebImage$' -c -X gcov -F macos
- bash <(curl -s https://codecov.io/bash) -v -D './DerivedData/iOS' -J '^SDWebImage$' -c -X gcov -F ios
- bash <(curl -s https://codecov.io/bash) -v -D './DerivedData/tvOS' -J '^SDWebImage$' -c -X gcov -F tvos
-
- Build:
- name: Build Library
- runs-on: macos-11
- env:
- DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
- PROJECT_NAME: SDWebImage.xcodeproj
- SCHEME_NAME: SDWebImage
- 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: 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 Release | 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 Release | xcpretty -c
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Release | xcpretty -c
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk appletvsimulator -configuration Release | xcpretty -c
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk watchsimulator -configuration Release | xcpretty -c
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS,arch=x86_64,variant=Mac Catalyst" -configuration Release | xcpretty -c
- rm -rf ~/Library/Developer/Xcode/DerivedData/
|