Skip to content

Commit 97cb0b4

Browse files
ci: Make release script more performant (#1089)
1 parent e7e3816 commit 97cb0b4

File tree

1 file changed

+58
-63
lines changed

1 file changed

+58
-63
lines changed

.github/workflows/publish.js.yml

Lines changed: 58 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
1723
jobs:
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

Comments
 (0)