Skip to content

Observable State for WorkflowSwiftUI (#283) #908

Observable State for WorkflowSwiftUI (#283)

Observable State for WorkflowSwiftUI (#283) #908

Workflow file for this run

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