diff --git a/.github/workflows/build-kata-static-tarball-amd64.yaml b/.github/workflows/build-kata-static-tarball-amd64.yaml index f5b25ed978..f44144bd5e 100644 --- a/.github/workflows/build-kata-static-tarball-amd64.yaml +++ b/.github/workflows/build-kata-static-tarball-amd64.yaml @@ -108,6 +108,7 @@ jobs: ARTEFACT_REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} TARGET_BRANCH: ${{ inputs.target-branch }} RELEASE: ${{ inputs.stage == 'release' && 'yes' || 'no' }} + KBUILD_SIGN_PIN: ${{ secrets.KBUILD_SIGN_PIN }} - name: Parse OCI image name and digest id: parse-oci-segments @@ -215,6 +216,7 @@ jobs: ARTEFACT_REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} TARGET_BRANCH: ${{ inputs.target-branch }} RELEASE: ${{ inputs.stage == 'release' && 'yes' || 'no' }} + KBUILD_SIGN_PIN: ${{ secrets.KBUILD_SIGN_PIN }} - name: store-artifact ${{ matrix.asset }} uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 diff --git a/.github/workflows/ci-devel.yaml b/.github/workflows/ci-devel.yaml index 333ea99660..c3b0daf2e2 100644 --- a/.github/workflows/ci-devel.yaml +++ b/.github/workflows/ci-devel.yaml @@ -27,6 +27,7 @@ jobs: CI_HKD_PATH: ${{ secrets.CI_HKD_PATH }} ITA_KEY: ${{ secrets.ITA_KEY }} QUAY_DEPLOYER_PASSWORD: ${{ secrets.QUAY_DEPLOYER_PASSWORD }} + NGC_API_KEY: ${{ secrets.NGC_API_KEY }} build-checks: uses: ./.github/workflows/build-checks.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3c0ae59d6c..6419c6a4a3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,6 +36,9 @@ on: QUAY_DEPLOYER_PASSWORD: required: true + NGC_API_KEY: + required: true + permissions: contents: read id-token: write @@ -323,6 +326,21 @@ jobs: pr-number: ${{ inputs.pr-number }} target-branch: ${{ inputs.target-branch }} + run-k8s-tests-on-nvidia-gpu: + if: ${{ inputs.skip-test != 'yes' }} + needs: publish-kata-deploy-payload-amd64 + uses: ./.github/workflows/run-k8s-tests-on-nvidia-gpu.yaml + with: + registry: ghcr.io + repo: ${{ github.repository_owner }}/kata-deploy-ci + tag: ${{ inputs.tag }}-amd64 + commit-hash: ${{ inputs.commit-hash }} + pr-number: ${{ inputs.pr-number }} + target-branch: ${{ inputs.target-branch }} + secrets: + NGC_API_KEY: ${{ secrets.NGC_API_KEY }} + + run-kata-coco-tests: if: ${{ inputs.skip-test != 'yes' }} needs: diff --git a/.github/workflows/run-k8s-tests-on-nvidia-gpu.yaml b/.github/workflows/run-k8s-tests-on-nvidia-gpu.yaml new file mode 100644 index 0000000000..c6e285a41b --- /dev/null +++ b/.github/workflows/run-k8s-tests-on-nvidia-gpu.yaml @@ -0,0 +1,89 @@ +name: CI | Run NVIDIA GPU kubernetes tests on arm64 +on: + workflow_call: + inputs: + registry: + required: true + type: string + repo: + required: true + type: string + tag: + required: true + type: string + pr-number: + required: true + type: string + commit-hash: + required: false + type: string + target-branch: + required: false + type: string + default: "" + secrets: + NGC_API_KEY: + required: true + +permissions: {} + +jobs: + run-nvidia-gpu-tests-on-amd64: + strategy: + fail-fast: false + matrix: + vmm: + - qemu-nvidia-gpu + k8s: + - kubeadm + runs-on: amd64-nvidia-a100 + env: + DOCKER_REGISTRY: ${{ inputs.registry }} + DOCKER_REPO: ${{ inputs.repo }} + DOCKER_TAG: ${{ inputs.tag }} + GH_PR_NUMBER: ${{ inputs.pr-number }} + KATA_HYPERVISOR: ${{ matrix.vmm }} + KUBERNETES: ${{ matrix.k8s }} + USING_NFD: "false" + K8S_TEST_HOST_TYPE: all + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + ref: ${{ inputs.commit-hash }} + fetch-depth: 0 + persist-credentials: false + + - name: Rebase atop of the latest target branch + run: | + ./tests/git-helper.sh "rebase-atop-of-the-latest-target-branch" + env: + TARGET_BRANCH: ${{ inputs.target-branch }} + + - name: Deploy Kata + timeout-minutes: 10 + run: bash tests/integration/kubernetes/gha-run.sh deploy-kata + + - name: Install `bats` + run: bash tests/integration/kubernetes/gha-run.sh install-bats + + - name: Run tests + timeout-minutes: 30 + run: bash tests/integration/kubernetes/gha-run.sh run-nv-tests + env: + NGC_API_KEY: ${{ secrets.NGC_API_KEY }} + - name: Collect artifacts ${{ matrix.vmm }} + if: always() + run: bash tests/integration/kubernetes/gha-run.sh collect-artifacts + continue-on-error: true + + - name: Archive artifacts ${{ matrix.vmm }} + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: k8s-tests-${{ matrix.vmm }}-${{ matrix.k8s }}-${{ inputs.tag }} + path: /tmp/artifacts + retention-days: 1 + + - name: Delete kata-deploy + if: always() + timeout-minutes: 5 + run: bash tests/integration/kubernetes/gha-run.sh cleanup