Repository navigation
ci: add DeepSeek V4 Pro nightly smoke #14893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
82839b8
1cc9b59
3d03c11
d820e74
ab8072f
c7f01de
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,3 +14,4 @@ paths: | |
| self-hosted-runner: | ||
| labels: | ||
| - prod-builder-v3 | ||
| - prod-deploy-tester-v1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||
| kind: Kustomization | ||
| resources: | ||
| - ../../../../recipes/deepseek-v4/deepseek-v4-pro/vllm/disagg/gb200/deploy.yaml | ||
|
|
||
| # GCP GB200 exposes the shared cache under a cluster-managed PVC, taints its | ||
| # Arm nodes, and requires all four serving nodes to stay in one NVLink clique. | ||
| patches: | ||
| - target: | ||
| group: nvidia.com | ||
| version: v1alpha1 | ||
| kind: DynamoGraphDeployment | ||
| name: dsv4-pro-disagg | ||
| patch: |- | ||
| - op: replace | ||
| path: /spec/pvcs/0/name | ||
| value: shared-model-cache | ||
| - op: replace | ||
| path: /spec/services/Frontend/volumeMounts/0/name | ||
| value: shared-model-cache | ||
| - op: add | ||
| path: /spec/services/Frontend/extraPodSpec/priorityClassName | ||
| value: ci-nightly-high-priority | ||
| - op: replace | ||
| path: /spec/services/prefill/volumeMounts/0/name | ||
| value: shared-model-cache | ||
| - op: add | ||
| path: /spec/services/prefill/extraPodSpec/priorityClassName | ||
| value: ci-nightly-high-priority | ||
| - op: add | ||
| path: /spec/services/prefill/extraPodSpec/affinity | ||
| value: | ||
| podAffinity: | ||
| requiredDuringSchedulingIgnoredDuringExecution: | ||
| - topologyKey: nvidia.com/gpu.clique | ||
| labelSelector: | ||
| matchExpressions: | ||
| - key: nvidia.com/dynamo-component-type | ||
| operator: In | ||
| values: [worker, prefill, decode] | ||
| - op: add | ||
| path: /spec/services/prefill/extraPodSpec/tolerations | ||
| value: | ||
| - key: kubernetes.io/arch | ||
| operator: Equal | ||
| value: arm64 | ||
| effect: NoSchedule | ||
| - op: replace | ||
| path: /spec/services/decode/volumeMounts/0/name | ||
| value: shared-model-cache | ||
| - op: add | ||
| path: /spec/services/decode/extraPodSpec/priorityClassName | ||
| value: ci-nightly-high-priority | ||
| - op: add | ||
| path: /spec/services/decode/extraPodSpec/affinity | ||
| value: | ||
| podAffinity: | ||
| requiredDuringSchedulingIgnoredDuringExecution: | ||
| - topologyKey: nvidia.com/gpu.clique | ||
| labelSelector: | ||
| matchExpressions: | ||
| - key: nvidia.com/dynamo-component-type | ||
| operator: In | ||
| values: [worker, prefill, decode] | ||
| - op: add | ||
| path: /spec/services/decode/extraPodSpec/tolerations | ||
| value: | ||
| - key: kubernetes.io/arch | ||
| operator: Equal | ||
| value: arm64 | ||
| effect: NoSchedule |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||
| kind: Kustomization | ||
| resources: | ||
| - ../../../../recipes/deepseek-v4/deepseek-v4-pro/vllm/disagg/gb200/perf.yaml | ||
|
|
||
| # Keep validation intentionally small: one concurrency with short synthetic | ||
| # sequences. The upstream exhaustive 8K/1K sweep remains unchanged. | ||
| patches: | ||
| - target: | ||
| group: batch | ||
| version: v1 | ||
| kind: Job | ||
| name: dsv4-pro-disagg-bench | ||
| patch: |- | ||
| apiVersion: batch/v1 | ||
| kind: Job | ||
| metadata: | ||
| name: dsv4-pro-disagg-bench | ||
| spec: | ||
| activeDeadlineSeconds: 1800 | ||
| template: | ||
| spec: | ||
| containers: | ||
| - name: bench | ||
| env: | ||
| - name: ISL | ||
| value: "128" | ||
| - name: OSL | ||
| value: "16" | ||
| - name: CONCURRENCIES | ||
| value: "1" | ||
| - name: ARTIFACT_ROOT | ||
| value: /tmp/aiperf/deepseek-v4-pro-smoke | ||
| volumes: | ||
| - name: model-cache | ||
| persistentVolumeClaim: | ||
| claimName: shared-model-cache |
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,148 @@ | |||||||||||||||||||||||||||
| #!/usr/bin/env bash | |||||||||||||||||||||||||||
| # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |||||||||||||||||||||||||||
| # SPDX-License-Identifier: Apache-2.0 | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| set -Eeuo pipefail | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| REPO_ROOT="$(git rev-parse --show-toplevel)" | |||||||||||||||||||||||||||
| readonly REPO_ROOT | |||||||||||||||||||||||||||
| readonly NAMESPACE="${NAMESPACE:-dynamo-nightly-dsv4}" | |||||||||||||||||||||||||||
| readonly ARTIFACT_DIR="${ARTIFACT_DIR:-${REPO_ROOT}/artifacts/deepseek-v4-pro-smoke}" | |||||||||||||||||||||||||||
| readonly DEPLOY_TIMEOUT="${DEPLOY_TIMEOUT:-100m}" | |||||||||||||||||||||||||||
| readonly SCHEDULING_TIMEOUT="${SCHEDULING_TIMEOUT:-10m}" | |||||||||||||||||||||||||||
| readonly PERF_TIMEOUT="${PERF_TIMEOUT:-30m}" | |||||||||||||||||||||||||||
| readonly PVC_TIMEOUT_SECONDS="${PVC_TIMEOUT_SECONDS:-300}" | |||||||||||||||||||||||||||
| readonly KEEP_RESOURCES="${KEEP_RESOURCES:-0}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| KUBECTL=(kubectl) | |||||||||||||||||||||||||||
| if [[ -n "${KUBE_CONTEXT:-}" ]]; then | |||||||||||||||||||||||||||
| KUBECTL+=(--context "${KUBE_CONTEXT}") | |||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| secret_manifest="" | |||||||||||||||||||||||||||
| deploy_manifest="" | |||||||||||||||||||||||||||
| smoke_manifest="" | |||||||||||||||||||||||||||
| mkdir -p "${ARTIFACT_DIR}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| collect_diagnostics() { | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" get \ | |||||||||||||||||||||||||||
| pods,services,jobs,dynamographdeployments,computedomains \ | |||||||||||||||||||||||||||
| -o wide >"${ARTIFACT_DIR}/resources.txt" 2>&1 || true | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" get events \ | |||||||||||||||||||||||||||
| --sort-by=.lastTimestamp >"${ARTIFACT_DIR}/events.txt" 2>&1 || true | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| while IFS= read -r pod; do | |||||||||||||||||||||||||||
| [[ -n "${pod}" ]] || continue | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" describe pod "${pod}" \ | |||||||||||||||||||||||||||
| >"${ARTIFACT_DIR}/${pod}-describe.txt" 2>&1 || true | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" logs "${pod}" --all-containers \ | |||||||||||||||||||||||||||
| --tail=500 >"${ARTIFACT_DIR}/${pod}.log" 2>&1 || true | |||||||||||||||||||||||||||
| done < <("${KUBECTL[@]}" -n "${NAMESPACE}" get pods -o name 2>/dev/null | cut -d/ -f2) | |||||||||||||||||||||||||||
| } | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| cleanup() { | |||||||||||||||||||||||||||
| local status="${1:-$?}" | |||||||||||||||||||||||||||
| trap - EXIT INT TERM | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| if (( status != 0 )); then | |||||||||||||||||||||||||||
| collect_diagnostics | |||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| if [[ "${KEEP_RESOURCES}" != "1" ]]; then | |||||||||||||||||||||||||||
| [[ -z "${smoke_manifest}" ]] || \ | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete -f "${smoke_manifest}" \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=false --timeout=2m || true | |||||||||||||||||||||||||||
| [[ -z "${deploy_manifest}" ]] || \ | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete -f "${deploy_manifest}" \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=false --timeout=2m || true | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete secret hf-token-secret \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=false --timeout=2m || true | |||||||||||||||||||||||||||
| else | |||||||||||||||||||||||||||
| echo "Keeping benchmark resources in ${NAMESPACE} for inspection" | |||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| [[ -z "${secret_manifest}" ]] || rm -f "${secret_manifest}" | |||||||||||||||||||||||||||
| [[ -z "${deploy_manifest}" ]] || rm -f "${deploy_manifest}" | |||||||||||||||||||||||||||
| [[ -z "${smoke_manifest}" ]] || rm -f "${smoke_manifest}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| exit "${status}" | |||||||||||||||||||||||||||
| } | |||||||||||||||||||||||||||
| trap 'cleanup $?' EXIT | |||||||||||||||||||||||||||
| trap 'exit 130' INT TERM | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| for command in git kubectl; do | |||||||||||||||||||||||||||
| command -v "${command}" >/dev/null || { | |||||||||||||||||||||||||||
| echo "Required command not found: ${command}" >&2 | |||||||||||||||||||||||||||
| exit 2 | |||||||||||||||||||||||||||
| } | |||||||||||||||||||||||||||
| done | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| cd "${REPO_ROOT}" | |||||||||||||||||||||||||||
| secret_manifest="$(mktemp)" | |||||||||||||||||||||||||||
| deploy_manifest="$(mktemp)" | |||||||||||||||||||||||||||
| smoke_manifest="$(mktemp)" | |||||||||||||||||||||||||||
| chmod 600 "${secret_manifest}" "${deploy_manifest}" "${smoke_manifest}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| "${KUBECTL[@]}" kustomize .github/ci/deepseek-v4-pro/deploy \ | |||||||||||||||||||||||||||
| --load-restrictor=LoadRestrictionsNone >"${deploy_manifest}" | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" kustomize .github/ci/deepseek-v4-pro/smoke \ | |||||||||||||||||||||||||||
| --load-restrictor=LoadRestrictionsNone >"${smoke_manifest}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| # The workflow owns these names and its concurrency group serializes runs. | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete -f "${smoke_manifest}" \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=true --timeout=5m | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete -f "${deploy_manifest}" \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=true --timeout=5m | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" delete secret hf-token-secret \ | |||||||||||||||||||||||||||
| --ignore-not-found --wait=true --timeout=2m | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" create secret generic hf-token-secret \ | |||||||||||||||||||||||||||
| --from-literal=HF_TOKEN="${HF_TOKEN:-cache-only-smoke}" \ | |||||||||||||||||||||||||||
| --dry-run=client -o yaml >"${secret_manifest}" | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" apply -f "${secret_manifest}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| deadline=$((SECONDS + PVC_TIMEOUT_SECONDS)) | |||||||||||||||||||||||||||
| until [[ "$("${KUBECTL[@]}" -n "${NAMESPACE}" get pvc shared-model-cache \ | |||||||||||||||||||||||||||
| -o jsonpath='{.status.phase}' 2>/dev/null || true)" == "Bound" ]]; do | |||||||||||||||||||||||||||
| if (( SECONDS >= deadline )); then | |||||||||||||||||||||||||||
| echo "shared-model-cache did not bind within ${PVC_TIMEOUT_SECONDS}s" >&2 | |||||||||||||||||||||||||||
| exit 1 | |||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||
| sleep 5 | |||||||||||||||||||||||||||
| done | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" apply -f "${deploy_manifest}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| for _ in {1..60}; do | |||||||||||||||||||||||||||
| worker_count="$("${KUBECTL[@]}" -n "${NAMESPACE}" get pods \ | |||||||||||||||||||||||||||
| -l 'nvidia.com/dynamo-component-type in (prefill,decode)' \ | |||||||||||||||||||||||||||
| -o name 2>/dev/null | wc -l | tr -d ' ')" | |||||||||||||||||||||||||||
| [[ "${worker_count}" == "4" ]] && break | |||||||||||||||||||||||||||
| sleep 5 | |||||||||||||||||||||||||||
| done | |||||||||||||||||||||||||||
| if [[ "${worker_count}" != "4" ]]; then | |||||||||||||||||||||||||||
| echo "Dynamo operator did not create all four worker pods" >&2 | |||||||||||||||||||||||||||
| exit 1 | |||||||||||||||||||||||||||
| fi | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" wait \ | |||||||||||||||||||||||||||
| --for=condition=PodScheduled pod \ | |||||||||||||||||||||||||||
| -l 'nvidia.com/dynamo-component-type in (prefill,decode)' \ | |||||||||||||||||||||||||||
| --timeout="${SCHEDULING_TIMEOUT}" | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" wait \ | |||||||||||||||||||||||||||
| --for=condition=Ready dynamographdeployment/dsv4-pro-disagg \ | |||||||||||||||||||||||||||
| --timeout="${DEPLOY_TIMEOUT}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" apply -f "${smoke_manifest}" | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" wait \ | |||||||||||||||||||||||||||
| --for=condition=Complete job/dsv4-pro-disagg-bench \ | |||||||||||||||||||||||||||
| --timeout="${PERF_TIMEOUT}" | |||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" logs job/dsv4-pro-disagg-bench \ | |||||||||||||||||||||||||||
| >"${ARTIFACT_DIR}/aiperf.log" | |||||||||||||||||||||||||||
| pod="$("${KUBECTL[@]}" -n "${NAMESPACE}" get pods \ | |||||||||||||||||||||||||||
| -l job-name=dsv4-pro-disagg-bench -o jsonpath='{.items[0].metadata.name}')" | |||||||||||||||||||||||||||
| "${KUBECTL[@]}" -n "${NAMESPACE}" cp \ | |||||||||||||||||||||||||||
| "${pod}:/tmp/aiperf/." "${ARTIFACT_DIR}/" || true | |||||||||||||||||||||||||||
|
Comment on lines
+144
to
+145
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: sed -n '1,190p' .github/scripts/run_deepseek_v4_pro_smoke.sh
sed -n '1,120p' .github/ci/deepseek-v4-pro/smoke/kustomization.yaml
sed -n '1,100p' .github/workflows/deepseek-v4-pro-nightly.yml
sed -n '1,180p' recipes/deepseek-v4/deepseek-v4-pro/vllm/disagg/gb200/perf.yamlRepository: ai-dynamo/dynamo Length of output: 13159 🏁 Script executed: nl -ba .github/scripts/run_deepseek_v4_pro_smoke.sh | sed -n '140,160p'
nl -ba .github/ci/deepseek-v4-pro/smoke/kustomization.yaml | sed -n '10,35p'
nl -ba .github/workflows/deepseek-v4-pro-nightly.yml | sed -n '25,55p'Repository: ai-dynamo/dynamo Length of output: 2772 Fail when benchmark artifact collection fails. Line 150 suppresses Remove Proposed fix- "${pod}:/tmp/aiperf/." "${ARTIFACT_DIR}/" || true
+ "${pod}:/tmp/aiperf/." "${ARTIFACT_DIR}/"
+[[ -d "${ARTIFACT_DIR}/deepseek-v4-pro-smoke/c1" ]] || {
+ echo "AIPerf artifacts were not collected" >&2
+ exit 1
+}📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [P1] The results copy can never work, so the smoke test uploads no AIPerf data. Measured, with a running-pod controlI copied the shape of the rendered smoke Job into a test Job. It uses
The subject prints: I got the same result with client v1.31.5 and with client v1.36.3, against server v1.31.5. The failure comes from the API server, not from the client version. Three things make the miss silent:
Every run uploads the log and the diagnostics, and never the AIPerf results. I am not posting a suggestion block, because the obvious one is wrong. If you only drop
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use this command on a human-authored review finding. CodeRabbit findings already use the standard resolution workflow. |
|||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||
| collect_diagnostics | |||||||||||||||||||||||||||
| echo "DeepSeek-V4-Pro AIPerf smoke test completed in ${NAMESPACE}" | |||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,60 @@ | |||||||||||||||||||||||||||||
| # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |||||||||||||||||||||||||||||
| # SPDX-License-Identifier: Apache-2.0 | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| name: DeepSeek V4 Pro Nightly Smoke | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| on: | |||||||||||||||||||||||||||||
| # Temporary pre-merge validation trigger. Remove after the copy-branch run. | |||||||||||||||||||||||||||||
| push: | |||||||||||||||||||||||||||||
| branches: | |||||||||||||||||||||||||||||
| - pull-request/14893 | |||||||||||||||||||||||||||||
| paths: | |||||||||||||||||||||||||||||
| - .github/ci/deepseek-v4-pro/** | |||||||||||||||||||||||||||||
| - .github/scripts/run_deepseek_v4_pro_smoke.sh | |||||||||||||||||||||||||||||
| - .github/workflows/deepseek-v4-pro-nightly.yml | |||||||||||||||||||||||||||||
| - recipes/deepseek-v4/deepseek-v4-pro/vllm/disagg/gb200/** | |||||||||||||||||||||||||||||
| schedule: | |||||||||||||||||||||||||||||
| - cron: '0 10 * * *' | |||||||||||||||||||||||||||||
| workflow_dispatch: | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| permissions: | |||||||||||||||||||||||||||||
| contents: read | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| concurrency: | |||||||||||||||||||||||||||||
| group: deepseek-v4-pro-nightly | |||||||||||||||||||||||||||||
| cancel-in-progress: false | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||||||||
| smoke: | |||||||||||||||||||||||||||||
| # Keep schedules inert until the nightly benchmark is enabled. Manual | |||||||||||||||||||||||||||||
| # dispatch and this copy-branch push are for pre-merge bring-up. | |||||||||||||||||||||||||||||
| if: >- | |||||||||||||||||||||||||||||
| github.event_name == 'workflow_dispatch' || | |||||||||||||||||||||||||||||
| github.event_name == 'push' || | |||||||||||||||||||||||||||||
| vars.DEEPSEEK_V4_PRO_NIGHTLY_ENABLED == 'true' | |||||||||||||||||||||||||||||
| runs-on: prod-deploy-tester-v1 | |||||||||||||||||||||||||||||
| timeout-minutes: 150 | |||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [P3] The job timeout leaves no room for the waits inside the script. The budget, added up from the script defaultsThe waits run one after another, so they add.
Nothing is left for checkout, image pulls, the two |
|||||||||||||||||||||||||||||
| env: | |||||||||||||||||||||||||||||
| NAMESPACE: dynamo-nightly-dsv4 | |||||||||||||||||||||||||||||
| KUBE_CONTEXT: nv-prd-dgxc.teleport.sh-dynamo-gcp-dev-02 | |||||||||||||||||||||||||||||
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||
| - name: Checkout code | |||||||||||||||||||||||||||||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||
| persist-credentials: false | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| - name: Deploy upstream recipe and run AIPerf smoke | |||||||||||||||||||||||||||||
| shell: bash | |||||||||||||||||||||||||||||
| env: | |||||||||||||||||||||||||||||
| ARTIFACT_DIR: ${{ runner.temp }}/deepseek-v4-pro-smoke | |||||||||||||||||||||||||||||
| run: bash .github/scripts/run_deepseek_v4_pro_smoke.sh | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| - name: Upload smoke artifacts | |||||||||||||||||||||||||||||
| if: always() | |||||||||||||||||||||||||||||
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |||||||||||||||||||||||||||||
| with: | |||||||||||||||||||||||||||||
| name: deepseek-v4-pro-smoke-${{ github.run_id }}-${{ github.run_attempt }} | |||||||||||||||||||||||||||||
| path: ${{ runner.temp }}/deepseek-v4-pro-smoke/ | |||||||||||||||||||||||||||||
| retention-days: 14 | |||||||||||||||||||||||||||||
| if-no-files-found: warn | |||||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.