Observable State for WorkflowSwiftUI (#283) #908
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: | |
env: | |
XCODE_VERSION: 15.1 | |
IOS_DESTINATION: platform=iOS Simulator,OS=17.2,name=iPad (10th generation) | |
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@v4 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
# Uses version specified in .ruby_version | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- name: Pod Install | |
run: | | |
bundle exec pod gen Development.podspec | |
- name: Switch Xcode | |
run: sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app | |
- name: Build & Test | |
run: | | |
set -o pipefail | |
xcodebuild \ | |
-workspace gen/Development/Development.xcworkspace \ | |
-scheme ${{ matrix.scheme }} \ | |
-destination "$IOS_DESTINATION" \ | |
build test | bundle exec xcpretty | |
xcodegen-apps: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Switch Xcode | |
run: sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app | |
- name: Install XcodeGen | |
run: brew install xcodegen | |
- name: Generate Xcode project | |
run: xcodegen generate | |
- name: ObservableScreen | |
run: | | |
xcodebuild \ | |
-project Workflow.xcodeproj \ | |
-scheme "ObservableScreen" \ | |
-destination "$IOS_DESTINATION" \ | |
-skipMacroValidation \ | |
build | |
package-tests: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Switch Xcode | |
run: sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app | |
- name: Install XcodeGen | |
run: brew install xcodegen | |
- name: Generate Xcode project | |
run: xcodegen generate | |
# Macros are only built for the compiler platform, so we cannot run macro tests on iOS. Instead | |
# we target a scheme from project.yml which selectively includes all the other tests. | |
- name: Tests - iOS | |
run: | | |
xcodebuild \ | |
-project Workflow.xcodeproj \ | |
-scheme "Tests-iOS" \ | |
-destination "$IOS_DESTINATION" \ | |
-skipMacroValidation \ | |
test | |
# On macOS we can run all tests, including macro tests. | |
- name: Tests - macOS | |
run: | | |
xcodebuild \ | |
-project Workflow.xcodeproj \ | |
-scheme "Tests-All" \ | |
-destination "platform=macOS" \ | |
-skipMacroValidation \ | |
test | |
tutorial: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
# Uses version specified in .ruby_version | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- name: Switch Xcode | |
run: sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app | |
- name: Tutorial App | |
run: | | |
cd Samples/Tutorial | |
bundle exec pod install | |
set -o pipefail | |
xcodebuild \ | |
-workspace Tutorial.xcworkspace \ | |
-scheme Tutorial \ | |
-destination "$IOS_DESTINATION" \ | |
build test | bundle exec xcpretty | |
documentation-lint: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
# Uses version specified in .ruby_version | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- name: Switch Xcode | |
run: sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app | |
- name: Install sourcedocs | |
run: brew install sourcedocs | |
- name: Swiftdocs | |
run: | | |
.buildscript/build_swift_docs.sh ${{ runner.temp }}/swiftdocs |