dynamo/.github/workflows/shared-deploy-test-framewor...

88 lines
3.2 KiB
YAML

# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
name: Deploy Test Framework
on:
workflow_call:
inputs:
framework:
description: 'Framework to test (vllm, sglang, trtllm)'
type: string
required: true
profiles:
description: 'JSON array of deployment profiles to test'
type: string
required: true
image_suffix:
description: 'Image suffix (e.g. vllm-runtime-cuda12-amd64)'
type: string
required: true
namespace:
description: 'Host namespace where the vCluster lives'
type: string
required: true
vcluster_name:
description: 'Name of the vCluster'
type: string
required: true
operator_tag:
description: 'Operator image tag'
type: string
required: true
jobs:
deploy-test:
runs-on: prod-default-small-v2
timeout-minutes: 25
permissions:
contents: read
strategy:
fail-fast: false
max-parallel: 2
matrix:
profile: ${{ fromJSON(inputs.profiles) }}
name: deploy-test-${{ inputs.framework }} (${{ matrix.profile }})
steps:
- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
- name: Check if vCluster exists
id: vcluster-check
uses: ./.github/actions/check-vcluster-exists
with:
kubeconfig_base64: ${{ secrets.AZURE_AKS_CI_KUBECONFIG_B64 }}
vcluster_name: ${{ inputs.vcluster_name }}
vcluster_namespace: ${{ inputs.namespace }}
- name: Self-bootstrap vCluster (rerun)
if: steps.vcluster-check.outputs.exists != 'true'
uses: ./.github/actions/setup-dynamo-operator
with:
kubeconfig_base64: ${{ secrets.AZURE_AKS_CI_KUBECONFIG_B64 }}
vcluster_name: ${{ inputs.vcluster_name }}
vcluster_namespace: ${{ inputs.namespace }}
registry: ${{ secrets.AZURE_ACR_HOSTNAME }}
operator_tag: ${{ inputs.operator_tag }}
hf_token: ${{ secrets.HF_TOKEN }}
dockerhub_username: ${{ secrets.DOCKERHUB_LOGIN_USER }}
dockerhub_password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Connect to vCluster
id: connect-vcluster
uses: ./.github/actions/connect-vcluster
with:
host_kubeconfig_base64: ${{ secrets.AZURE_AKS_CI_KUBECONFIG_B64 }}
vcluster_name: ${{ inputs.vcluster_name }}
vcluster_namespace: ${{ inputs.namespace }}
- name: Run Dynamo Deploy Test
id: deploy-test
uses: ./.github/actions/dynamo-deploy-test
with:
kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }}
namespace: default
registry: ${{ secrets.AZURE_ACR_HOSTNAME }}
operator_tag: ${{ inputs.operator_tag }}
hf_token: ${{ secrets.HF_TOKEN }}
framework: ${{ inputs.framework }}
profile: ${{ matrix.profile }}
image: ${{ secrets.AZURE_ACR_HOSTNAME }}/ai-dynamo/dynamo:${{ github.sha }}-${{ inputs.image_suffix }}
platform_arch: amd64