|
| 1 | +name: GPU Offload Kind Smoke |
| 2 | + |
| 3 | +# End-to-end CPU-only smoke coverage for the gpu-offload stack: runs the |
| 4 | +# first-run example against a real `kind` cluster to prove admission (the |
| 5 | +# webhook mutates the client and generates the server Deployment) and a real |
| 6 | +# remote call (the function executes on the generated server pod, not the |
| 7 | +# client). detect-platform.sh resolves to platform=cpu on any GPU-less |
| 8 | +# runner, and every GPU-only step in the pipeline self-skips, so this is a |
| 9 | +# complete run of the real controller, Helm chart, and images without needing |
| 10 | +# a GPU. See .github/workflows/pr-validation.yml (gpu_offload_e2e) for the |
| 11 | +# path gate. |
| 12 | + |
| 13 | +'on': |
| 14 | + workflow_call: |
| 15 | + |
| 16 | +permissions: |
| 17 | + contents: read |
| 18 | + |
| 19 | +jobs: |
| 20 | + kind-smoke: |
| 21 | + name: Kind Smoke |
| 22 | + runs-on: ubuntu-latest |
| 23 | + timeout-minutes: 20 |
| 24 | + permissions: |
| 25 | + contents: read |
| 26 | + env: |
| 27 | + # Force the deterministic CPU/kind path rather than relying on |
| 28 | + # runner auto-detection (detect-platform.sh would resolve the same way |
| 29 | + # on a GPU-less runner, but this keeps the gate explicit). |
| 30 | + GPU_OFFLOAD_PLATFORM: cpu |
| 31 | + defaults: |
| 32 | + run: |
| 33 | + working-directory: gpu-offload |
| 34 | + steps: |
| 35 | + - name: Checkout code |
| 36 | + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 37 | + with: |
| 38 | + persist-credentials: false |
| 39 | + |
| 40 | + - name: Install host packages |
| 41 | + run: scripts/install-host-packages.sh |
| 42 | + |
| 43 | + - name: Install mise |
| 44 | + uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0 |
| 45 | + with: |
| 46 | + working_directory: gpu-offload |
| 47 | + |
| 48 | + - name: Trust the gpu-offload mise config |
| 49 | + run: mise trust |
| 50 | + |
| 51 | + - name: Install kind, kubectl, and Helm |
| 52 | + run: mise run b-host-02-kubernetes-tools |
| 53 | + |
| 54 | + - name: Set up the offload cluster |
| 55 | + run: mise run f-10-setup |
| 56 | + |
| 57 | + - name: Verify admission and remote execution |
| 58 | + run: mise run f-20-verify |
| 59 | + |
| 60 | + - name: Tear down the cluster |
| 61 | + if: always() |
| 62 | + run: mise run f-40-teardown-all |
0 commit comments