7373
7474 build-gateway :
7575 needs : [pr_metadata]
76- if : needs.pr_metadata.outputs.should_run == 'true' && ( needs.pr_metadata.outputs.run_core_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true')
76+ if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_any_e2e == 'true'
7777 permissions :
7878 contents : read
7979 packages : write
@@ -95,38 +95,59 @@ jobs:
9595
9696 build-cli :
9797 needs : [pr_metadata]
98- if : needs.pr_metadata.outputs.should_run == 'true'
98+ if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_any_e2e == 'true'
9999 permissions :
100100 contents : read
101101 packages : write
102102 uses : ./.github/workflows/docker-build.yml
103103 with :
104104 component : cli
105- platform : linux/amd64
105+ platform : linux/amd64,linux/arm64
106+
107+ build-driver-vm-linux :
108+ needs : [pr_metadata]
109+ if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_core_e2e == 'true'
110+ permissions :
111+ contents : read
112+ packages : read
113+ uses : ./.github/workflows/driver-vm-linux.yml
114+ with :
115+ image-tag : ${{ github.sha }}
116+ checkout-ref : ${{ github.sha }}
117+ runtime-platforms : linux-x86_64
118+ driver-targets : >-
119+ [{"arch":"amd64","runner":"linux-amd64-cpu8","target":"x86_64-unknown-linux-gnu","zig_target":"x86_64-unknown-linux-gnu.2.28","platform":"linux-x86_64","guest_arch":"x86_64"}]
106120
107121 e2e :
108- needs : [pr_metadata, build-gateway, build-supervisor]
122+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli, build-driver-vm-linux ]
109123 if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_core_e2e == 'true'
110124 permissions :
125+ actions : read
111126 contents : read
112127 packages : read
113128 uses : ./.github/workflows/e2e-test.yml
114129 with :
115130 image-tag : ${{ github.sha }}
116131 runner : linux-arm64-cpu8
132+ cli-artifact-prefix : rust-binary-cli
133+ gateway-artifact-prefix : rust-binary-gateway
134+ vm-driver-artifact-name : driver-vm-linux-amd64
117135
118136 gpu-e2e :
119- needs : [pr_metadata, build-supervisor]
137+ needs : [pr_metadata, build-gateway, build- supervisor, build-cli ]
120138 if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_gpu_e2e == 'true'
121139 permissions :
140+ actions : read
122141 contents : read
123142 packages : read
124143 uses : ./.github/workflows/e2e-gpu-test.yaml
125144 with :
126145 image-tag : ${{ github.sha }}
146+ cli-artifact-prefix : rust-binary-cli
147+ gateway-artifact-prefix : rust-binary-gateway
127148
128149 kubernetes-e2e :
129- needs : [pr_metadata, build-gateway, build-supervisor]
150+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli ]
130151 if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_core_e2e == 'true'
131152 strategy :
132153 fail-fast : false
@@ -145,6 +166,7 @@ jobs:
145166 topology : sidecar
146167 extra_helm_values : deploy/helm/openshell/ci/values-sidecar.yaml
147168 permissions :
169+ actions : read
148170 contents : read
149171 packages : read
150172 uses : ./.github/workflows/e2e-kubernetes-test.yml
@@ -153,11 +175,13 @@ jobs:
153175 job-name : Kubernetes E2E (Rust smoke, ${{ matrix.topology }}, Agent Sandbox ${{ matrix.agent_sandbox_api }})
154176 agent-sandbox-version : ${{ matrix.agent_sandbox_version }}
155177 extra-helm-values : ${{ matrix.extra_helm_values }}
178+ cli-artifact-prefix : rust-binary-cli
156179
157180 kubernetes-ha-e2e :
158- needs : [pr_metadata, build-gateway, build-supervisor]
181+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli ]
159182 if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true'
160183 permissions :
184+ actions : read
161185 contents : read
162186 packages : read
163187 uses : ./.github/workflows/e2e-kubernetes-test.yml
@@ -166,17 +190,20 @@ jobs:
166190 job-name : Kubernetes HA E2E (Rust smoke)
167191 extra-helm-values : deploy/helm/openshell/ci/values-high-availability.yaml
168192 external-postgres-secret : openshell-ha-pg
193+ cli-artifact-prefix : rust-binary-cli
169194
170195 core-e2e-result :
171196 name : Core E2E result
172- needs : [pr_metadata, build-gateway, build-supervisor, e2e, kubernetes-e2e]
197+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli, build-driver-vm-linux, e2e, kubernetes-e2e]
173198 if : always() && needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_core_e2e == 'true'
174199 runs-on : ubuntu-latest
175200 steps :
176201 - name : Verify core E2E jobs
177202 env :
178203 BUILD_GATEWAY_RESULT : ${{ needs.build-gateway.result }}
179204 BUILD_SUPERVISOR_RESULT : ${{ needs.build-supervisor.result }}
205+ BUILD_CLI_RESULT : ${{ needs.build-cli.result }}
206+ BUILD_DRIVER_VM_RESULT : ${{ needs.build-driver-vm-linux.result }}
180207 E2E_RESULT : ${{ needs.e2e.result }}
181208 KUBERNETES_E2E_RESULT : ${{ needs.kubernetes-e2e.result }}
182209 run : |
@@ -185,6 +212,8 @@ jobs:
185212 for item in \
186213 "build-gateway:$BUILD_GATEWAY_RESULT" \
187214 "build-supervisor:$BUILD_SUPERVISOR_RESULT" \
215+ "build-cli:$BUILD_CLI_RESULT" \
216+ "build-driver-vm-linux:$BUILD_DRIVER_VM_RESULT" \
188217 "e2e:$E2E_RESULT" \
189218 "kubernetes-e2e:$KUBERNETES_E2E_RESULT"; do
190219 name="${item%%:*}"
@@ -198,19 +227,23 @@ jobs:
198227
199228 gpu-e2e-result :
200229 name : GPU E2E result
201- needs : [pr_metadata, build-supervisor, gpu-e2e]
230+ needs : [pr_metadata, build-gateway, build- supervisor, build-cli , gpu-e2e]
202231 if : always() && needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_gpu_e2e == 'true'
203232 runs-on : ubuntu-latest
204233 steps :
205234 - name : Verify GPU E2E jobs
206235 env :
236+ BUILD_GATEWAY_RESULT : ${{ needs.build-gateway.result }}
207237 BUILD_SUPERVISOR_RESULT : ${{ needs.build-supervisor.result }}
238+ BUILD_CLI_RESULT : ${{ needs.build-cli.result }}
208239 GPU_E2E_RESULT : ${{ needs.gpu-e2e.result }}
209240 run : |
210241 set -euo pipefail
211242 failed=0
212243 for item in \
244+ "build-gateway:$BUILD_GATEWAY_RESULT" \
213245 "build-supervisor:$BUILD_SUPERVISOR_RESULT" \
246+ "build-cli:$BUILD_CLI_RESULT" \
214247 "gpu-e2e:$GPU_E2E_RESULT"; do
215248 name="${item%%:*}"
216249 result="${item#*:}"
@@ -223,21 +256,23 @@ jobs:
223256
224257 kubernetes-ha-e2e-result :
225258 name : Kubernetes HA E2E result
226- needs : [pr_metadata, build-gateway, build-supervisor, kubernetes-ha-e2e]
259+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli, kubernetes-ha-e2e]
227260 if : always() && needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true'
228261 runs-on : ubuntu-latest
229262 steps :
230263 - name : Verify Kubernetes HA E2E jobs
231264 env :
232265 BUILD_GATEWAY_RESULT : ${{ needs.build-gateway.result }}
233266 BUILD_SUPERVISOR_RESULT : ${{ needs.build-supervisor.result }}
267+ BUILD_CLI_RESULT : ${{ needs.build-cli.result }}
234268 KUBERNETES_HA_E2E_RESULT : ${{ needs.kubernetes-ha-e2e.result }}
235269 run : |
236270 set -euo pipefail
237271 failed=0
238272 for item in \
239273 "build-gateway:$BUILD_GATEWAY_RESULT" \
240274 "build-supervisor:$BUILD_SUPERVISOR_RESULT" \
275+ "build-cli:$BUILD_CLI_RESULT" \
241276 "kubernetes-ha-e2e:$KUBERNETES_HA_E2E_RESULT"; do
242277 name="${item%%:*}"
243278 result="${item#*:}"
0 commit comments