[chore]: attempt to fix & slightly streamline CI config #867
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
name: Swift CI | ||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
jobs: | ||
development-apps: | ||
runs-on: macos-latest | ||
strategy: | ||
matrix: | ||
scheme: | ||
- Development-Unit-WorkflowTesting | ||
- Development-Unit-WorkflowTests | ||
- Development-Unit-WorkflowUITests | ||
- Development-Unit-SplitScreenTests | ||
- Development-Unit-TicTacToeTests | ||
- Development-Unit-WorkflowReactiveSwiftTests | ||
- Development-Unit-WorkflowRxSwiftTests | ||
- Development-Unit-WorkflowReactiveSwiftTestingTests | ||
- Development-Unit-WorkflowRxSwiftTestingTests | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Read env | ||
run: cat .github/workflows/env.properties >> $GITHUB_ENV | ||
- name: Cache gems | ||
uses: actions/cache@v3 | ||
with: | ||
path: .bundle | ||
key: gems-${{ hashFiles('Gemfile.lock') }} | ||
- name: Bundle Install | ||
run: | | ||
bundle check || bundle install --path .bundle | ||
- name: Pod Install | ||
run: | | ||
bundle exec pod gen Development.podspec | ||
- name: Switch to Xcode ${{ env.xcode_version }} | ||
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcode_version }}.app | ||
- name: Build & Test | ||
run: | | ||
set -o pipefail && xcodebuild -workspace gen/Development/Development.xcworkspace -scheme ${{ matrix.scheme }} -destination platform\=iOS\ Simulator,OS\=17.2,name\=iPad\ Mini\ \(6th\ generation\) build test | xcpretty | ||
spm: | ||
runs-on: macos-latest | ||
matrix: | ||
include: | ||
- sdk: "15.4" | ||
destination: platform=iOS Simulator,OS=15.4,name=iPhone SE (3rd generation) | ||
installation_required: true | ||
- sdk: "16.2" | ||
destination: platform=iOS Simulator,OS=16.2,name=iPhone SE (3rd generation) | ||
installation_required: true | ||
- sdk: "17.2" | ||
destination: platform=iOS Simulator,OS=17.2,name=iPhone SE (3rd generation) | ||
# The iOS 17.2 SDK is pre-installed on the macOS 13 image. | ||
# Attempting to install it will fail with an error. | ||
installation_required: false | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Read env | ||
run: cat .github/workflows/env.properties >> $GITHUB_ENV | ||
- name: Switch to Xcode ${{ env.xcode_version }} | ||
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcode_version }}.app | ||
- name: Install xcodes | ||
run: brew install aria2 xcodesorg/made/xcodes | ||
- name: Install iOS ${{ matrix.sdk }} | ||
if: ${{ matrix.installation_required }} | ||
run: sudo xcodes runtimes install "iOS ${{ matrix.sdk }}" | ||
- name: Swift Package Manager - Build & Test - iOS | ||
run: | | ||
xcodebuild -scheme "Workflow-Package" -destination "${{ matrix.destination }}" build test | ||
- name: Swift Package Manager - Build & Test - macOS | ||
run: | | ||
xcodebuild -scheme "Workflow-Package" -destination "platform=macOS" build test | ||
tutorial: | ||
runs-on: macos-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Read env | ||
run: cat .github/workflows/env.properties >> $GITHUB_ENV | ||
- name: Cache gems | ||
uses: actions/cache@v3 | ||
with: | ||
path: .bundle | ||
key: gems-${{ hashFiles('Gemfile.lock') }} | ||
- name: Bundle Install | ||
run: | | ||
bundle check || bundle install --path .bundle | ||
- name: Switch to Xcode ${{ env.xcode_version }} | ||
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcode_version }}.app | ||
- name: Tutorial App | ||
run: | | ||
cd Samples/Tutorial | ||
bundle exec pod install | ||
set -o pipefail && xcodebuild -workspace Tutorial.xcworkspace -scheme Tutorial -destination platform\=iOS\ Simulator,OS\=17.2,name\=iPhone\ SE\ \(3rd\ generation\) build test | xcpretty | ||
documentation-lint: | ||
runs-on: macos-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Read env | ||
run: cat .github/workflows/env.properties >> $GITHUB_ENV | ||
- name: Cache gems | ||
uses: actions/cache@v3 | ||
with: | ||
path: .bundle | ||
key: gems-${{ hashFiles('Gemfile.lock') }} | ||
- name: Bundle Install | ||
run: | | ||
bundle check || bundle install --path .bundle | ||
brew install sourcedocs | ||
- name: Switch to Xcode ${{ env.xcode_version }} | ||
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcode_version }}.app | ||
- name: Swiftdocs | ||
run: | | ||
.buildscript/build_swift_docs.sh ${{ runner.temp }}/swiftdocs |