Add patch step for DVR project to support Swift 5 in CI workflow #272
Workflow file for this run
This file contains hidden or 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
| name: "Contentstack CI" | |
| on: | |
| push: | |
| branches: [ master, staging ] | |
| pull_request: | |
| branches: [ master, staging ] | |
| jobs: | |
| macOS: | |
| name: Test macOS | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Configure Git credentials | |
| run: | | |
| git config --global url."https://x-access-token:${{ secrets.PKG_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - name: Set up Ruby (for installing Bundler and Fastlane) | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.0' | |
| - name: Install dep via Carthage | |
| run: | | |
| carthage bootstrap --platform macOS --use-xcframeworks --cache-builds | |
| - name: Install dependencies via Swift Package Manager | |
| run: swift package resolve | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: latest | |
| - name: Create config file | |
| run: | | |
| echo '{ | |
| "api_key": "${{ secrets.api_key }}", | |
| "delivery_token": "${{ secrets.delivery_token }}", | |
| "environment": "${{ secrets.environment }}" | |
| }' > Tests/config.json | |
| - name: Build and run tests | |
| run: | | |
| xcodebuild test \ | |
| -workspace ContentstackSwift.xcworkspace \ | |
| -scheme "ContentstackSwift macOS Tests" \ | |
| -destination 'platform=macOS,arch=arm64' \ | |
| ONLY_ACTIVE_ARCH=NO \ | |
| CODE_SIGNING_ALLOWED=NO | |
| iOS: | |
| name: Test iOS | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Configure Git credentials | |
| run: | | |
| git config --global url."https://x-access-token:${{ secrets.PKG_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| - name: Set up Ruby (for installing Bundler and Fastlane) | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.0' | |
| - name: Patch DVR project for Xcode | |
| run: | | |
| mkdir -p Carthage/Checkouts | |
| git clone https://github.com/contentstack/contentstack-swift-dvr.git Carthage/Checkouts/contentstack-swift-dvr | |
| cd Carthage/Checkouts/contentstack-swift-dvr | |
| # Force Swift 5 | |
| sed -i '' 's/SWIFT_VERSION = 4.0;/SWIFT_VERSION = 5.0;/g' DVR.xcodeproj/project.pbxproj | |
| # Share the DVR-iOS scheme so Carthage can find it | |
| xcodebuild -project DVR.xcodeproj -scheme DVR-iOS -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15' | |
| - name: Install dep via Carthage | |
| run: | | |
| carthage bootstrap --platform iOS --cache-builds | |
| - name: Install dependencies via Swift Package Manager | |
| run: swift package resolve | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: latest | |
| - name: Create config file | |
| run: | | |
| echo '{ | |
| "api_key": "${{ secrets.api_key }}", | |
| "delivery_token": "${{ secrets.delivery_token }}", | |
| "environment": "${{ secrets.environment }}" | |
| }' > Tests/config.json | |
| - name: Build and run tests | |
| run: | | |
| xcodebuild test \ | |
| -workspace ContentstackSwift.xcworkspace \ | |
| -scheme "ContentstackSwift iOS Tests" \ | |
| -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' \ | |
| -sdk iphonesimulator \ | |
| ONLY_ACTIVE_ARCH=NO \ | |
| CODE_SIGNING_ALLOWED=NO |