ci(helm-e2e): use kind in CI, keep k3d for local dev #8
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
| # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| name: Branch Helm E2E | |
| on: | |
| push: | |
| branches: | |
| - "pull-request/[0-9]+" | |
| workflow_dispatch: {} | |
| permissions: {} | |
| jobs: | |
| pr_metadata: | |
| name: Resolve PR metadata | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| outputs: | |
| should_run: ${{ steps.gate.outputs.should_run }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - id: gate | |
| uses: ./.github/actions/pr-gate | |
| with: | |
| required_label: test:e2e-helm | |
| build-gateway: | |
| needs: [pr_metadata] | |
| if: needs.pr_metadata.outputs.should_run == 'true' | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/docker-build.yml | |
| with: | |
| component: gateway | |
| platform: linux/amd64 | |
| build-supervisor: | |
| needs: [pr_metadata] | |
| if: needs.pr_metadata.outputs.should_run == 'true' | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/docker-build.yml | |
| with: | |
| component: supervisor | |
| platform: linux/amd64 | |
| helm-e2e-rust: | |
| name: Helm E2E (rust) | |
| needs: [pr_metadata, build-gateway, build-supervisor] | |
| if: needs.pr_metadata.outputs.should_run == 'true' | |
| runs-on: linux-amd64-cpu8 | |
| timeout-minutes: 60 | |
| permissions: | |
| contents: read | |
| packages: read | |
| env: | |
| MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| HELM_E2E_CLUSTER_NAME: helm-e2e-${{ github.run_id }}-rust | |
| HELM_E2E_IMAGE_TAG: ${{ github.sha }} | |
| HELM_E2E_SKIP_CLUSTER: "1" | |
| HELM_E2E_IMAGE_LOADER: kind | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Log in to GHCR | |
| run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin | |
| - name: Install mise | |
| run: | | |
| curl https://mise.run | sh | |
| echo "$HOME/.local/bin" >> "$GITHUB_PATH" | |
| echo "$HOME/.local/share/mise/shims" >> "$GITHUB_PATH" | |
| - name: Install tools | |
| run: mise install --locked | |
| - name: Create kind cluster | |
| uses: helm/kind-action@v1 | |
| with: | |
| cluster_name: ${{ env.HELM_E2E_CLUSTER_NAME }} | |
| wait: 120s | |
| - name: Run Helm E2E (Rust) | |
| run: mise run e2e:helm:rust | |
| helm-e2e-python: | |
| name: Helm E2E (python) | |
| needs: [pr_metadata, build-gateway, build-supervisor] | |
| if: needs.pr_metadata.outputs.should_run == 'true' | |
| runs-on: linux-amd64-cpu8 | |
| timeout-minutes: 60 | |
| permissions: | |
| contents: read | |
| packages: read | |
| env: | |
| MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| HELM_E2E_CLUSTER_NAME: helm-e2e-${{ github.run_id }}-python | |
| HELM_E2E_IMAGE_TAG: ${{ github.sha }} | |
| HELM_E2E_SKIP_CLUSTER: "1" | |
| HELM_E2E_IMAGE_LOADER: kind | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Log in to GHCR | |
| run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin | |
| - name: Install mise | |
| run: | | |
| curl https://mise.run | sh | |
| echo "$HOME/.local/bin" >> "$GITHUB_PATH" | |
| echo "$HOME/.local/share/mise/shims" >> "$GITHUB_PATH" | |
| - name: Install tools | |
| run: mise install --locked | |
| - name: Install Python dependencies | |
| run: uv sync --frozen && mise run --no-deps python:proto | |
| - name: Create kind cluster | |
| uses: helm/kind-action@v1 | |
| with: | |
| cluster_name: ${{ env.HELM_E2E_CLUSTER_NAME }} | |
| wait: 120s | |
| - name: Run Helm E2E (Python) | |
| run: mise run e2e:helm:python |