@@ -14,16 +14,63 @@ permissions:
1414 issues : write
1515 id-token : write # to enable use of OIDC for trusted publishing and npm provenance
1616
17+ env :
18+ XCODE_VERSION : ' 16.4'
19+ # Available destination for simulators depend on Xcode version.
20+ DESTINATION_SIM : platform=iOS Simulator,name=iPhone 17
21+ DESTINATION_SIM_TVOS : platform=tvOS Simulator,name=Apple TV 4K (3rd generation)
22+
1723jobs :
18- build :
19- runs-on : macos-15
24+ build_matrix :
25+ runs-on : ubuntu-latest
26+ outputs :
27+ matrix : ${{ steps.set-matrix.outputs.matrix }}
28+ steps :
29+ - id : set-matrix
30+ run : |
31+ cat <<MATRIX_JSON | jq -c . > matrix.json
32+ [
33+ {"name": "iOS Real Device", "build_script": "build-real.sh", "scheme": "WebDriverAgentRunner", "destination": "generic/platform=iOS", "derived_data_path": "appium_wda_ios", "wd": "appium_wda_ios/Build/Products/Debug-iphoneos", "zip_name": "WebDriverAgentRunner-Runner.zip", "artifact_name": "WebDriverAgentRunner-Runner"},
34+ {"name": "tvOS Real Device", "build_script": "build-real.sh", "scheme": "WebDriverAgentRunner_tvOS", "destination": "generic/platform=tvOS", "derived_data_path": "appium_wda_tvos", "wd": "appium_wda_tvos/Build/Products/Debug-appletvos", "zip_name": "WebDriverAgentRunner_tvOS-Runner.zip", "artifact_name": "WebDriverAgentRunner_tvOS-Runner"},
35+ {"name": "iOS Simulator arm64", "build_script": "build-sim.sh", "scheme": "WebDriverAgentRunner", "destination": "${{ env.DESTINATION_SIM }}", "derived_data_path": "appium_wda_ios_sim_arm64", "simulator_name": "Debug-iphonesimulator", "wd": "appium_wda_ios_sim_arm64/Build/Products/Debug-iphonesimulator", "zip_name": "WebDriverAgentRunner-Build-Sim-arm64.zip", "artifact_name": "WebDriverAgentRunner-Build-Sim-arm64", "archs": "arm64"},
36+ {"name": "iOS Simulator x86_64", "build_script": "build-sim.sh", "scheme": "WebDriverAgentRunner", "destination": "${{ env.DESTINATION_SIM }}", "derived_data_path": "appium_wda_ios_sim_x86_64", "simulator_name": "Debug-iphonesimulator", "wd": "appium_wda_ios_sim_x86_64/Build/Products/Debug-iphonesimulator", "zip_name": "WebDriverAgentRunner-Build-Sim-x86_64.zip", "artifact_name": "WebDriverAgentRunner-Build-Sim-x86_64", "archs": "x86_64"},
37+ {"name": "tvOS Simulator arm64", "build_script": "build-sim.sh", "scheme": "WebDriverAgentRunner_tvOS", "destination": "${{ env.DESTINATION_SIM_TVOS }}", "derived_data_path": "appium_wda_tvos_sim_arm64", "simulator_name": "Debug-appletvsimulator", "wd": "appium_wda_tvos_sim_arm64/Build/Products/Debug-appletvsimulator", "zip_name": "WebDriverAgentRunner_tvOS-Build-Sim-arm64.zip", "artifact_name": "WebDriverAgentRunner_tvOS-Build-Sim-arm64", "archs": "arm64"},
38+ {"name": "tvOS Simulator x86_64", "build_script": "build-sim.sh", "scheme": "WebDriverAgentRunner_tvOS", "destination": "${{ env.DESTINATION_SIM_TVOS }}", "derived_data_path": "appium_wda_tvos_sim_x86_64", "simulator_name": "Debug-appletvsimulator", "wd": "appium_wda_tvos_sim_x86_64/Build/Products/Debug-appletvsimulator", "zip_name": "WebDriverAgentRunner_tvOS-Build-Sim-x86_64.zip", "artifact_name": "WebDriverAgentRunner_tvOS-Build-Sim-x86_64", "archs": "x86_64"}
39+ ]
40+ MATRIX_JSON
41+ echo "matrix=$(cat matrix.json)" >> $GITHUB_OUTPUT
2042
21- env :
22- XCODE_VERSION : 16.3
23- # Available destination for simulators depend on Xcode version.
24- DESTINATION_SIM : platform=iOS Simulator,name=iPhone 17
25- DESTINATION_SIM_TVOS : platform=tvOS Simulator,name=Apple TV 4K (3rd generation)
43+ build-wda :
44+ needs : build_matrix
45+ name : ${{ matrix.config.name }}
46+ runs-on : macos-15
47+ strategy :
48+ fail-fast : false
49+ matrix :
50+ config : ${{ fromJSON(needs.build_matrix.outputs.matrix) }}
51+ steps :
52+ - uses : actions/checkout@v6
53+ - uses : maxim-lobanov/setup-xcode@v1
54+ with :
55+ xcode-version : " ${{ env.XCODE_VERSION }}"
56+ - name : ${{ matrix.config.name }}
57+ run : sh $GITHUB_WORKSPACE/Scripts/ci/${{ matrix.config.build_script }}
58+ env :
59+ DERIVED_DATA_PATH : ${{ matrix.config.derived_data_path }}
60+ SCHEME : ${{ matrix.config.scheme }}
61+ DESTINATION : ${{ matrix.config.destination }}
62+ WD : ${{ matrix.config.wd }}
63+ ZIP_PKG_NAME : ${{ matrix.config.zip_name }}
64+ ARCHS : ${{ matrix.config.archs || '' }}
65+ - name : Upload artifact
66+ uses : actions/upload-artifact@v4
67+ with :
68+ name : ${{ matrix.config.artifact_name }}
69+ path : ${{ matrix.config.zip_name }}
2670
71+ release :
72+ needs : build-wda
73+ runs-on : macos-15
2774 steps :
2875 - uses : actions/checkout@v6
2976 - name : Use Node.js
@@ -39,62 +86,10 @@ jobs:
3986 name : Run build
4087 - run : npm run test
4188 name : Run test
42-
43- # building WDA packages
44- - name : Building iOS
45- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-real.sh
46- env :
47- DERIVED_DATA_PATH : appium_wda_ios
48- SCHEME : WebDriverAgentRunner
49- DESTINATION : generic/platform=iOS
50- WD : appium_wda_ios/Build/Products/Debug-iphoneos
51- ZIP_PKG_NAME : WebDriverAgentRunner-Runner.zip
52- - name : Building tvOS
53- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-real.sh
54- env :
55- DERIVED_DATA_PATH : appium_wda_tvos
56- SCHEME : WebDriverAgentRunner_tvOS
57- DESTINATION : generic/platform=tvOS
58- WD : appium_wda_tvos/Build/Products/Debug-appletvos
59- ZIP_PKG_NAME : WebDriverAgentRunner_tvOS-Runner.zip
60- - name : Building iOS sim arm64
61- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-sim.sh
62- env :
63- DERIVED_DATA_PATH : appium_wda_ios_sim_arm64
64- SCHEME : WebDriverAgentRunner
65- DESTINATION : ${{ env.DESTINATION_SIM }}
66- WD : appium_wda_ios_sim_arm64/Build/Products/Debug-iphonesimulator
67- ZIP_PKG_NAME : WebDriverAgentRunner-Build-Sim-arm64.zip
68- ARCHS : arm64
69- - name : Building iOS sim x86_64
70- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-sim.sh
71- env :
72- DERIVED_DATA_PATH : appium_wda_ios_sim_x86_64
73- SCHEME : WebDriverAgentRunner
74- DESTINATION : ${{ env.DESTINATION_SIM }}
75- WD : appium_wda_ios_sim_x86_64/Build/Products/Debug-iphonesimulator
76- ZIP_PKG_NAME : WebDriverAgentRunner-Build-Sim-x86_64.zip
77- ARCHS : x86_64
78- - name : Building tvOS sim arm64
79- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-sim.sh
80- env :
81- DERIVED_DATA_PATH : appium_wda_tvos_sim_arm64
82- SCHEME : WebDriverAgentRunner_tvOS
83- DESTINATION : ${{ env.DESTINATION_SIM_TVOS }}
84- WD : appium_wda_tvos_sim_arm64/Build/Products/Debug-appletvsimulator
85- ZIP_PKG_NAME : WebDriverAgentRunner_tvOS-Build-Sim-arm64.zip
86- ARCHS : arm64
87- - name : Building tvOS sim x86_64
88- run : sh $GITHUB_WORKSPACE/Scripts/ci/build-sim.sh
89- env :
90- DERIVED_DATA_PATH : appium_wda_tvos_sim_x86_64
91- SCHEME : WebDriverAgentRunner_tvOS
92- DESTINATION : ${{ env.DESTINATION_SIM_TVOS }}
93- WD : appium_wda_tvos_sim_x86_64/Build/Products/Debug-appletvsimulator
94- ZIP_PKG_NAME : WebDriverAgentRunner_tvOS-Build-Sim-x86_64.zip
95- ARCHS : x86_64
96-
97- # release tasks
89+ - name : Download all artifacts
90+ uses : actions/download-artifact@v4
91+ with :
92+ path : ./
9893 - run : npx semantic-release
9994 env :
10095 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments