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] | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
| cancel-in-progress: true | ||
| 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_matrix: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
| steps: | ||
| - id: set-matrix | ||
| run: | | ||
| echo 'matrix=${{ toJSON([ | ||
| {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"}, | ||
| {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"}, | ||
| {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}, | ||
| {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} | ||
| ]) }}' >> $GITHUB_OUTPUT | ||
| analyze_matrix: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
| steps: | ||
| - id: set-matrix | ||
| run: | | ||
| echo 'matrix=${{ toJSON([ | ||
| {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}, | ||
| {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}, | ||
| {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}, | ||
| {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} | ||
| ]) }}' >> $GITHUB_OUTPUT | ||
| unit_test_matrix: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
| steps: | ||
| - id: set-matrix | ||
| run: | | ||
| echo 'matrix=${{ toJSON([ | ||
| {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} | ||
| ]) }}' >> $GITHUB_OUTPUT | ||
| integration_test_matrix: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
| steps: | ||
| - id: set-matrix | ||
| run: | | ||
| echo 'matrix=${{ toJSON([ | ||
| {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}, | ||
| {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}, | ||
| {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}, | ||
| {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} | ||
| ]) }}' >> $GITHUB_OUTPUT | ||
| build: | ||
| needs: build_matrix | ||
| name: ${{ matrix.config.name }} | ||
| runs-on: ${{ matrix.config.vm_image }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| config: ${{ fromJSON(needs.build_matrix.outputs.matrix) }} | ||
| 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 }} | ||
| analyze: | ||
| needs: analyze_matrix | ||
| name: ${{ matrix.config.name }} | ||
| runs-on: ${{ matrix.config.vm_image }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| config: ${{ fromJSON(needs.analyze_matrix.outputs.matrix) }} | ||
| 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: | ||
| needs: unit_test_matrix | ||
| name: ${{ matrix.config.name }} | ||
| runs-on: ${{ matrix.config.vm_image }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| config: ${{ fromJSON(needs.unit_test_matrix.outputs.matrix) }} | ||
| 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: | ||
| needs: integration_test_matrix | ||
| name: ${{ matrix.config.name }} | ||
| runs-on: ${{ matrix.config.vm_image }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| config: ${{ fromJSON(needs.integration_test_matrix.outputs.matrix) }} | ||
| 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 }} | ||