From 202020bcaac047e30b755c5bab74dfc8719ff736 Mon Sep 17 00:00:00 2001 From: Hyounggyu Choi Date: Tue, 9 Jun 2026 18:47:26 +0200 Subject: [PATCH] GHA: Run qemu-coco-dev-runtime-rs k8s test on zVSI nightly only Run qemu-coco-dev-runtime-rs k8s test workflow on the zVSI only during nightly builds. Changes: - Split the zVSI k8s test workflow into two jobs in ci.yaml: - Regular job: tests qemu, qemu-runtime-rs, qemu-coco-dev with all snapshotters - Nightly-only job: tests qemu-coco-dev-runtime-rs with nydus only - Modified run-k8s-tests-on-zvsi.yaml to accept vmm and snapshotter as workflow inputs instead of hardcoded matrix values This ensures qemu-coco-dev-runtime-rs is only tested with nydus snapshotter during nightly CI runs, reducing PR test time while maintaining comprehensive nightly coverage. Signed-off-by: Hyounggyu Choi --- .github/workflows/ci.yaml | 1 + .github/workflows/run-k8s-tests-on-zvsi.yaml | 42 ++++++++++---------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d103aa5ad9..f1d0bbe184 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -437,6 +437,7 @@ jobs: commit-hash: ${{ inputs.commit-hash }} pr-number: ${{ inputs.pr-number }} target-branch: ${{ inputs.target-branch }} + vmm: ${{ (inputs.pr-number == 'nightly' || inputs.pr-number == 'dev') && '["qemu", "qemu-runtime-rs", "qemu-coco-dev", "qemu-coco-dev-runtime-rs"]' || '["qemu", "qemu-runtime-rs", "qemu-coco-dev"]' }} secrets: AUTHENTICATED_IMAGE_PASSWORD: ${{ secrets.AUTHENTICATED_IMAGE_PASSWORD }} diff --git a/.github/workflows/run-k8s-tests-on-zvsi.yaml b/.github/workflows/run-k8s-tests-on-zvsi.yaml index 8ff421e818..d66590b881 100644 --- a/.github/workflows/run-k8s-tests-on-zvsi.yaml +++ b/.github/workflows/run-k8s-tests-on-zvsi.yaml @@ -21,6 +21,11 @@ on: required: false type: string default: "" + vmm: + description: 'JSON array of VMM names (string)' + required: false + type: string + default: '["qemu", "qemu-runtime-rs", "qemu-coco-dev"]' secrets: AUTHENTICATED_IMAGE_PASSWORD: required: true @@ -41,19 +46,9 @@ jobs: - overlayfs - devmapper - nydus - vmm: - - qemu - - qemu-runtime-rs - - qemu-coco-dev - - qemu-coco-dev-runtime-rs + vmm: ${{ fromJSON(inputs.vmm) }} k8s: - kubeadm - include: - - snapshotter: devmapper - pull-type: default - snapshotter-cmd: configure-snapshotter - - snapshotter: nydus - pull-type: guest-pull exclude: - snapshotter: overlayfs vmm: qemu @@ -83,7 +78,6 @@ jobs: KATA_HOST_OS: "ubuntu" KATA_HYPERVISOR: ${{ matrix.vmm }} KUBERNETES: ${{ matrix.k8s }} - PULL_TYPE: ${{ matrix.pull-type }} SNAPSHOTTER: ${{ matrix.snapshotter }} TARGET_ARCH: "s390x" AUTHENTICATED_IMAGE_USER: ${{ vars.AUTHENTICATED_IMAGE_USER }} @@ -101,23 +95,29 @@ jobs: env: TARGET_BRANCH: ${{ inputs.target-branch }} + - name: Set PULL_TYPE for devmapper + run: echo "PULL_TYPE=default" >> "$GITHUB_ENV" + if: ${{ matrix.snapshotter == 'devmapper' }} + + - name: Set PULL_TYPE for nydus + run: echo "PULL_TYPE=guest-pull" >> "$GITHUB_ENV" + if: ${{ matrix.snapshotter == 'nydus' }} + - name: Set SNAPSHOTTER to empty if overlayfs run: echo "SNAPSHOTTER=" >> "$GITHUB_ENV" if: ${{ matrix.snapshotter == 'overlayfs' }} - - name: Set KBS and KBS_INGRESS if qemu-coco-dev + - name: Set KBS and KBS_INGRESS for CoCo dev VMMs run: | echo "KBS=true" >> "$GITHUB_ENV" echo "KBS_INGRESS=nodeport" >> "$GITHUB_ENV" - if: ${{ matrix.vmm == 'qemu-coco-dev' || matrix.vmm == 'qemu-coco-dev-runtime-rs' }} + if: ${{ startsWith(matrix.vmm, 'qemu-coco-dev') }} # qemu-runtime-rs only works with overlayfs # See: https://github.com/kata-containers/kata-containers/issues/10066 - name: Configure the ${{ matrix.snapshotter }} snapshotter - env: - SNAPSHOTTER_CMD: ${{ matrix.snapshotter-cmd }} - run: bash tests/integration/kubernetes/gha-run.sh "${SNAPSHOTTER_CMD}" - if: ${{ matrix.snapshotter != 'overlayfs' && matrix.snapshotter-cmd != '' }} + run: bash tests/integration/kubernetes/gha-run.sh configure-snapshotter + if: ${{ matrix.snapshotter == 'devmapper' }} - name: Deploy Kata timeout-minutes: 20 @@ -126,17 +126,17 @@ jobs: - name: Uninstall previous `kbs-client` timeout-minutes: 10 run: bash tests/integration/kubernetes/gha-run.sh uninstall-kbs-client - if: ${{ matrix.vmm == 'qemu-coco-dev' || matrix.vmm == 'qemu-coco-dev-runtime-rs' }} + if: ${{ startsWith(matrix.vmm, 'qemu-coco-dev') }} - name: Deploy CoCo KBS timeout-minutes: 10 run: bash tests/integration/kubernetes/gha-run.sh deploy-coco-kbs - if: ${{ matrix.vmm == 'qemu-coco-dev' || matrix.vmm == 'qemu-coco-dev-runtime-rs' }} + if: ${{ startsWith(matrix.vmm, 'qemu-coco-dev') }} - name: Install `kbs-client` timeout-minutes: 10 run: bash tests/integration/kubernetes/gha-run.sh install-kbs-client - if: ${{ matrix.vmm == 'qemu-coco-dev' || matrix.vmm == 'qemu-coco-dev-runtime-rs' }} + if: ${{ startsWith(matrix.vmm, 'qemu-coco-dev') }} - name: Run tests timeout-minutes: 60