Skip to content

ci: Migrate WDA tests to github actions #1

ci: Migrate WDA tests to github actions

ci: Migrate WDA tests to github actions #1

Workflow file for this run

name: WDA Tests

Check failure on line 1 in .github/workflows/wda-tests.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/wda-tests.yml

Invalid workflow file

(Line: 34, Col: 23): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MAX_VM_IMAGE, (Line: 35, Col: 28): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MAX_XCODE_VERSION, (Line: 42, Col: 23): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MIN_VM_IMAGE, (Line: 43, Col: 28): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MIN_XCODE_VERSION, (Line: 49, Col: 28): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MIN_PLATFORM_VERSION, (Line: 52, Col: 23): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MAX_VM_IMAGE, (Line: 53, Col: 28): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MAX_XCODE_VERSION, (Line: 60, Col: 23): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MIN_VM_IMAGE, (Line: 61, Col: 28): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MIN_XCODE_VERSION, (Line: 69, Col: 23): Unrecognized named-value: 'env'. Located at position 1 within expression: env.MAX_VM_IMAGE
on:
pull_request:
branches: [master]
env:
MIN_VM_IMAGE: macos-14
MIN_XCODE_VERSION: "15.4"
MIN_PLATFORM_VERSION: "17.5"
MIN_TV_PLATFORM_VERSION: "17.5"
MIN_TV_DEVICE_NAME: "Apple TV 4K (3rd generation)"
MIN_IPHONE_DEVICE_NAME: "iPhone 15 Plus"
MIN_IPAD_DEVICE_NAME: "iPad Air 13-inch (M2)"
MAX_VM_IMAGE: macos-15
MAX_XCODE_VERSION: "26.1"
MAX_PLATFORM_VERSION: "26.1"
MAX_TV_PLATFORM_VERSION: "26.1"
MAX_IPHONE_DEVICE_NAME: "iPhone 17"
MAX_TV_DEVICE_NAME: "Apple TV 4K (3rd generation)"
MAX_IPAD_DEVICE_NAME: "iPad Air 11-inch (M2)"
DEFAULT_NODE_VERSION: "22.x"
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config:
# Generic iOS builds
- name: Generic_iOS_Build_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: build
target: runner
sdk: sim
dest: generic
code_sign: no
- name: Generic_iOS_Build_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: build
target: runner
sdk: sim
dest: generic
code_sign: no
extra_xc_args: IPHONEOS_DEPLOYMENT_TARGET=${{ env.MIN_PLATFORM_VERSION }}
# Generic tvOS builds
- name: Generic_tvOS_Build_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: build
target: tv_runner
sdk: tv_sim
dest: tv_generic
code_sign: no
- name: Generic_tvOS_Build_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: build
target: tv_runner
sdk: tv_sim
dest: tv_generic
code_sign: no
# iOS device builds
- name: iOS_Build_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: build
target: runner
sdk: sim
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iOS_Build_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: build
target: runner
sdk: sim
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
# tvOS device builds
- name: tvOS_Build_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: build
target: tv_runner
sdk: tv_sim
tv_model: ${{ env.MAX_TV_DEVICE_NAME }}
tv_version: ${{ env.MAX_TV_PLATFORM_VERSION }}
- name: tvOS_Build_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: build
target: tv_runner
sdk: tv_sim
dest: tv
tv_model: ${{ env.MIN_TV_DEVICE_NAME }}
tv_version: ${{ env.MIN_TV_PLATFORM_VERSION }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Build
run: ./Scripts/build.sh
env:
ACTION: ${{ matrix.config.action }}
TARGET: ${{ matrix.config.target }}
SDK: ${{ matrix.config.sdk }}
DEST: ${{ matrix.config.dest }}
CODE_SIGN: ${{ matrix.config.code_sign }}
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
TV_MODEL: ${{ matrix.config.tv_model }}
TV_VERSION: ${{ matrix.config.tv_version }}
EXTRA_XC_ARGS: ${{ matrix.config.extra_xc_args }}
analyze:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config:
# iOS lib analyze
- name: iOS_Lib_Analyze_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
target: lib
sdk: sim
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iOS_Lib_Analyze_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
target: lib
sdk: sim
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
# iOS runner analyze
- name: iOS_Runner_Analyze_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
target: runner
sdk: sim
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iOS_Runner_Analyze_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
target: runner
sdk: sim
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
# tvOS lib analyze
- name: tvOS_Lib_Analyze_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
target: tv_lib
sdk: tv_sim
tv_model: ${{ env.MAX_TV_DEVICE_NAME }}
tv_version: ${{ env.MAX_TV_PLATFORM_VERSION }}
- name: tvOS_Lib_Analyze_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
target: tv_lib
sdk: tv_sim
tv_model: ${{ env.MIN_TV_DEVICE_NAME }}
tv_version: ${{ env.MIN_TV_PLATFORM_VERSION }}
# tvOS runner analyze
- name: tvOS_Runner_Analyze_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
target: tv_runner
sdk: tv_sim
tv_model: ${{ env.MAX_TV_DEVICE_NAME }}
tv_version: ${{ env.MAX_TV_PLATFORM_VERSION }}
- name: tvOS_Runner_Analyze_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
target: tv_runner
sdk: tv_sim
tv_model: ${{ env.MIN_TV_DEVICE_NAME }}
tv_version: ${{ env.MIN_TV_PLATFORM_VERSION }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Analyze
run: ./Scripts/build.sh
env:
ACTION: analyze
TARGET: ${{ matrix.config.target }}
SDK: ${{ matrix.config.sdk }}
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
TV_MODEL: ${{ matrix.config.tv_model }}
TV_VERSION: ${{ matrix.config.tv_version }}
unit_test:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config:
- name: iPhone_Unit_Test_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iPhone_Unit_Test_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Run unit tests
run: ./Scripts/build.sh
env:
ACTION: unit_test
DEST: iphone
TARGET: lib
SDK: sim
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
integration_test:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config:
# iPhone integration tests - Max Xcode
- name: iphone_int_test_1_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_1
dest: iphone
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iphone_int_test_2_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_2
dest: iphone
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: iphone_int_test_3_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_3
dest: iphone
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
# iPad integration tests - Max Xcode
- name: ipad_int_test_1_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_1
dest: ipad
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: ipad_int_test_2_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_2
dest: ipad
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
- name: ipad_int_test_3_Max_Xcode
vm_image: ${{ env.MAX_VM_IMAGE }}
xcode_version: ${{ env.MAX_XCODE_VERSION }}
action: int_test_3
dest: ipad
iphone_model: ${{ env.MAX_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MAX_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MAX_PLATFORM_VERSION }}
# iPhone integration tests - Min Xcode
- name: iphone_int_test_1_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_1
dest: iphone
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
- name: iphone_int_test_2_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_2
dest: iphone
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
- name: iphone_int_test_3_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_3
dest: iphone
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
# iPad integration tests - Min Xcode
- name: ipad_int_test_1_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_1
dest: ipad
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
- name: ipad_int_test_2_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_2
dest: ipad
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
- name: ipad_int_test_3_Min_Xcode
vm_image: ${{ env.MIN_VM_IMAGE }}
xcode_version: ${{ env.MIN_XCODE_VERSION }}
action: int_test_3
dest: ipad
iphone_model: ${{ env.MIN_IPHONE_DEVICE_NAME }}
ipad_model: ${{ env.MIN_IPAD_DEVICE_NAME }}
ios_version: ${{ env.MIN_PLATFORM_VERSION }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Run integration test
run: ./Scripts/build.sh
env:
ACTION: ${{ matrix.config.action }}
DEST: ${{ matrix.config.dest }}
TARGET: lib
SDK: sim
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}