ci: Migrate WDA tests to github actions #1
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: WDA Tests | ||
|
Check failure on line 1 in .github/workflows/wda-tests.yml
|
||
| 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 }} | ||