Skip to content

Commit 5a8e33a

Browse files
committed
ci: add Branch Helm E2E workflow with test:e2e-helm gate
1 parent d15cafe commit 5a8e33a

3 files changed

Lines changed: 114 additions & 2 deletions

File tree

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: Branch Helm E2E
5+
6+
on:
7+
push:
8+
branches:
9+
- "pull-request/[0-9]+"
10+
workflow_dispatch: {}
11+
12+
permissions: {}
13+
14+
jobs:
15+
pr_metadata:
16+
name: Resolve PR metadata
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
pull-requests: read
21+
outputs:
22+
should_run: ${{ steps.gate.outputs.should_run }}
23+
steps:
24+
- uses: actions/checkout@v6
25+
26+
- id: gate
27+
uses: ./.github/actions/pr-gate
28+
with:
29+
required_label: test:e2e-helm
30+
31+
helm-e2e-rust:
32+
name: Helm E2E (rust)
33+
needs: [pr_metadata]
34+
if: needs.pr_metadata.outputs.should_run == 'true'
35+
runs-on: linux-amd64-cpu8
36+
timeout-minutes: 60
37+
permissions:
38+
contents: read
39+
packages: read
40+
container:
41+
image: ghcr.io/nvidia/openshell/ci:latest
42+
credentials:
43+
username: ${{ github.actor }}
44+
password: ${{ secrets.GITHUB_TOKEN }}
45+
options: --privileged
46+
volumes:
47+
- /var/run/docker.sock:/var/run/docker.sock
48+
env:
49+
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
HELM_E2E_CLUSTER_NAME: openshell-helm-e2e-${{ github.run_id }}-rust
51+
steps:
52+
- uses: actions/checkout@v6
53+
54+
- name: Mark workspace safe for git
55+
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
56+
57+
- name: Install tools
58+
run: mise install --locked
59+
60+
- name: Run Helm E2E (Rust)
61+
run: mise run e2e:helm:rust
62+
63+
helm-e2e-python:
64+
name: Helm E2E (python)
65+
needs: [pr_metadata]
66+
if: needs.pr_metadata.outputs.should_run == 'true'
67+
runs-on: linux-amd64-cpu8
68+
timeout-minutes: 60
69+
permissions:
70+
contents: read
71+
packages: read
72+
container:
73+
image: ghcr.io/nvidia/openshell/ci:latest
74+
credentials:
75+
username: ${{ github.actor }}
76+
password: ${{ secrets.GITHUB_TOKEN }}
77+
options: --privileged
78+
volumes:
79+
- /var/run/docker.sock:/var/run/docker.sock
80+
env:
81+
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
HELM_E2E_CLUSTER_NAME: openshell-helm-e2e-${{ github.run_id }}-python
83+
steps:
84+
- uses: actions/checkout@v6
85+
86+
- name: Mark workspace safe for git
87+
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
88+
89+
- name: Install tools
90+
run: mise install --locked
91+
92+
- name: Install Python dependencies
93+
run: uv sync --frozen && mise run --no-deps python:proto
94+
95+
- name: Run Helm E2E (Python)
96+
run: mise run e2e:helm:python

.github/workflows/e2e-gate.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
pull_request:
55
types: [opened, synchronize, reopened, labeled, unlabeled, ready_for_review]
66
workflow_run:
7-
workflows: ["Branch E2E Checks", "GPU Test"]
7+
workflows: ["Branch E2E Checks", "GPU Test", "Branch Helm E2E"]
88
types: [completed]
99

1010
permissions: {}
@@ -36,6 +36,18 @@ jobs:
3636
required_label: test:e2e-gpu
3737
workflow_file: test-gpu.yml
3838

39+
helm-e2e:
40+
name: Helm E2E
41+
if: github.event_name == 'pull_request'
42+
permissions:
43+
contents: read
44+
pull-requests: read
45+
actions: read
46+
uses: ./.github/workflows/e2e-gate-check.yml
47+
with:
48+
required_label: test:e2e-helm
49+
workflow_file: branch-helm-e2e.yml
50+
3951
# When the guarded workflow finishes, GitHub fires `workflow_run` in the
4052
# default-branch context — any check posted from here would land on `main`,
4153
# not on the PR. Instead, find the latest `pull_request`-triggered gate run

.github/workflows/e2e-label-help.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ permissions: {}
1919
jobs:
2020
hint:
2121
name: Post next-step hint for E2E label
22-
if: github.event.label.name == 'test:e2e' || github.event.label.name == 'test:e2e-gpu'
22+
if: |
23+
github.event.label.name == 'test:e2e' ||
24+
github.event.label.name == 'test:e2e-gpu' ||
25+
github.event.label.name == 'test:e2e-helm'
2326
runs-on: ubuntu-latest
2427
permissions:
2528
pull-requests: write
@@ -40,6 +43,7 @@ jobs:
4043
case "$LABEL_NAME" in
4144
test:e2e) workflow_file=branch-e2e.yml; workflow_name="Branch E2E Checks" ;;
4245
test:e2e-gpu) workflow_file=test-gpu.yml; workflow_name="GPU Test" ;;
46+
test:e2e-helm) workflow_file=branch-helm-e2e.yml; workflow_name="Branch Helm E2E" ;;
4347
*) echo "Unrecognized label $LABEL_NAME"; exit 1 ;;
4448
esac
4549

0 commit comments

Comments
 (0)