From 14e955a64388c9831eafa89ef01a702b2ba934f5 Mon Sep 17 00:00:00 2001 From: Saravana Periyasamy Date: Fri, 21 Aug 2026 08:17:01 -0500 Subject: [PATCH 1/3] fix(ci): resolve local pytest action from workflow commit Signed-off-by: Saravana Periyasamy --- .github/workflows/shared-test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/shared-test.yml b/.github/workflows/shared-test.yml index f4f685b29511..eb012ebec337 100644 --- a/.github/workflows/shared-test.yml +++ b/.github/workflows/shared-test.yml @@ -209,7 +209,7 @@ jobs: - name: Run CPU-only tests (parallelized) if: ${{ inputs.run_cpu_only_tests }} timeout-minutes: ${{ inputs.cpu_only_test_timeout_minutes }} - uses: ./.github/actions/pytest-local + uses: $/.github/actions/pytest-local with: container_workspace: ${{ inputs.container_workspace }} pytest_marks: ${{ inputs.cpu_only_test_markers }} @@ -223,7 +223,7 @@ jobs: - name: Run GPU tests (parallel) timeout-minutes: ${{ inputs.gpu_test_timeout_minutes }} if: ${{ matrix.platform == 'amd64' && inputs.run_gpu_tests && inputs.run_gpu_parallel_tests }} - uses: ./.github/actions/pytest-local + uses: $/.github/actions/pytest-local with: container_workspace: ${{ inputs.container_workspace }} pytest_marks: ${{ inputs.gpu_test_markers }} @@ -244,7 +244,7 @@ jobs: # container/pod never coming online) skips this step cleanly instead of trying # to run the local pytest-local action against an un-checked-out workspace. if: ${{ !cancelled() && steps.checkout.outcome == 'success' && matrix.platform == 'amd64' && inputs.run_gpu_tests }} - uses: ./.github/actions/pytest-local + uses: $/.github/actions/pytest-local with: container_workspace: ${{ inputs.container_workspace }} # When the parallel stage runs, exclude profiled tests here so they don't run twice. From 34813ed3b466f21a2b873bcdb2af20d318af4461 Mon Sep 17 00:00:00 2001 From: Saravana Periyasamy Date: Fri, 21 Aug 2026 10:37:15 -0500 Subject: [PATCH 2/3] fix(ci): ignore self-reference actionlint false positive Signed-off-by: Saravana Periyasamy --- .github/actionlint.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/actionlint.yaml diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 000000000000..8dc6ca45bff6 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +paths: + .github/workflows/shared-test.yml: + ignore: + # actionlint 1.7.12 does not recognize GitHub's self-repository syntax yet. + - '^specifying action "\$/\.github/actions/pytest-local" in invalid format because ref is missing\.' From 7b2926102a0de99e3c29e41bb9f556a45d06ad70 Mon Sep 17 00:00:00 2001 From: Saravana Periyasamy Date: Fri, 21 Aug 2026 11:03:04 -0500 Subject: [PATCH 3/3] ci: use self-repository references throughout Signed-off-by: Saravana Periyasamy --- .github/actionlint.yaml | 8 +- .../actions/build-deploy-component/action.yml | 4 +- .github/actions/builder-refresher/action.yml | 2 +- .../actions/check-vcluster-exists/action.yml | 2 +- .github/actions/compliance-scan/action.yml | 4 +- .github/actions/connect-vcluster/action.yml | 2 +- .../actions/init-dynamo-builder/action.yml | 6 +- .../actions/setup-dynamo-operator/action.yml | 4 +- .github/actions/skopeo-copy/action.yml | 4 +- .../teardown-dynamo-operator/action.yml | 2 +- .github/filters.yaml | 1 + .github/workflows/allure-report.yml | 2 +- .github/workflows/build-on-demand.yml | 18 +- .github/workflows/dynamo-pipeline.yml | 8 +- .github/workflows/fern-docs.yml | 2 +- .github/workflows/nightly-ci.yml | 64 +++---- .github/workflows/notify-slack.yml | 2 +- .github/workflows/post-merge-ci.yml | 166 +++++++++--------- .github/workflows/pr-xpu.yaml | 4 +- .github/workflows/pr.yaml | 162 ++++++++--------- .github/workflows/pre-merge.yml | 4 +- .github/workflows/request-nvskills-ci.yml | 2 +- .github/workflows/shared-build-image.yml | 14 +- .github/workflows/shared-compliance.yml | 4 +- .github/workflows/shared-copy.yml | 2 +- .github/workflows/shared-deploy-test.yml | 8 +- .github/workflows/shared-dgdr-deploy-test.yml | 12 +- .github/workflows/xpu-ci.yaml | 4 +- 28 files changed, 261 insertions(+), 256 deletions(-) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 8dc6ca45bff6..45015d379d22 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -2,7 +2,11 @@ # SPDX-License-Identifier: Apache-2.0 paths: - .github/workflows/shared-test.yml: + .github/workflows/**/*.{yml,yaml}: ignore: # actionlint 1.7.12 does not recognize GitHub's self-repository syntax yet. - - '^specifying action "\$/\.github/actions/pytest-local" in invalid format because ref is missing\.' + - '^specifying action "\$/\.github/(actions|workflows)/[^"]+" in invalid format because ref is missing\.' + - '^reusable workflow call "\$/\.github/workflows/[^"]+" at "uses" is not following the format ' + .github/actions/**/action.{yml,yaml}: + ignore: + - '^specifying action "\$/\.github/actions/[^"]+" in invalid format because ref is missing\.' diff --git a/.github/actions/build-deploy-component/action.yml b/.github/actions/build-deploy-component/action.yml index 8cd2454dc60a..48254278a26f 100644 --- a/.github/actions/build-deploy-component/action.yml +++ b/.github/actions/build-deploy-component/action.yml @@ -137,7 +137,7 @@ runs: echo "run_compliance=${RUN_COMPLIANCE}" >> $GITHUB_OUTPUT - name: Initialize Dynamo Builder - uses: ./.github/actions/init-dynamo-builder + uses: $/.github/actions/init-dynamo-builder with: builder_name: ${{ inputs.builder_name }} flavor: general @@ -145,7 +145,7 @@ runs: namespace: ${{ inputs.namespace }} - name: Docker Login - uses: ./.github/actions/docker-login + uses: $/.github/actions/docker-login with: aws_default_region: ${{ inputs.aws_default_region }} ecr_registry: ${{ inputs.ecr_registry }} diff --git a/.github/actions/builder-refresher/action.yml b/.github/actions/builder-refresher/action.yml index a246674fc3ae..3400ee7c51a7 100644 --- a/.github/actions/builder-refresher/action.yml +++ b/.github/actions/builder-refresher/action.yml @@ -80,7 +80,7 @@ runs: - name: Re-initialize builder (if unhealthy) if: steps.check-health.outcome == 'failure' - uses: ./.github/actions/init-dynamo-builder + uses: $/.github/actions/init-dynamo-builder with: builder_name: ${{ inputs.builder_name }} flavor: ${{ inputs.flavor }} diff --git a/.github/actions/check-vcluster-exists/action.yml b/.github/actions/check-vcluster-exists/action.yml index 6ed211f80b28..702c4f9afa31 100644 --- a/.github/actions/check-vcluster-exists/action.yml +++ b/.github/actions/check-vcluster-exists/action.yml @@ -22,7 +22,7 @@ runs: using: "composite" steps: - name: Install vCluster CLI - uses: ./.github/actions/install-vcluster-cli + uses: $/.github/actions/install-vcluster-cli - name: Check if vCluster exists id: check diff --git a/.github/actions/compliance-scan/action.yml b/.github/actions/compliance-scan/action.yml index 693df4e1b310..e078e7c0d8ea 100644 --- a/.github/actions/compliance-scan/action.yml +++ b/.github/actions/compliance-scan/action.yml @@ -69,7 +69,7 @@ runs: fi echo "base_image=${BASE_IMAGE}" >> $GITHUB_OUTPUT - name: Initialize builder - uses: ./.github/actions/init-dynamo-builder + uses: $/.github/actions/init-dynamo-builder with: builder_name: ${{ steps.builder.outputs.name }} flavor: general @@ -93,7 +93,7 @@ runs: - name: Refresh BuildKit builder if: ${{ inputs.target != 'dev' }} - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: ${{ steps.builder.outputs.name }} flavor: general diff --git a/.github/actions/connect-vcluster/action.yml b/.github/actions/connect-vcluster/action.yml index d7be60fe0c2e..7b3151c2dc87 100644 --- a/.github/actions/connect-vcluster/action.yml +++ b/.github/actions/connect-vcluster/action.yml @@ -29,7 +29,7 @@ runs: echo "KUBECONFIG=${{ github.workspace }}/.kubeconfig-host" >> $GITHUB_ENV - name: Install vCluster CLI - uses: ./.github/actions/install-vcluster-cli + uses: $/.github/actions/install-vcluster-cli - name: Connect to vCluster id: connect diff --git a/.github/actions/init-dynamo-builder/action.yml b/.github/actions/init-dynamo-builder/action.yml index 4baee2b56ff1..354405729c04 100644 --- a/.github/actions/init-dynamo-builder/action.yml +++ b/.github/actions/init-dynamo-builder/action.yml @@ -22,7 +22,7 @@ description: 'Route buildkit workers and bootstrap buildx builder for dynamo bui # # Usage examples: # # Initialize for both architectures with general flavor: -# - uses: ./.github/actions/init-dynamo-builder +# - uses: $/.github/actions/init-dynamo-builder # with: # builder_name: my-builder # flavor: general @@ -30,7 +30,7 @@ description: 'Route buildkit workers and bootstrap buildx builder for dynamo bui # namespace: buildkit # # # Initialize for single architecture with specific flavor and CUDA version: -# - uses: ./.github/actions/init-dynamo-builder +# - uses: $/.github/actions/init-dynamo-builder # with: # builder_name: my-builder # flavor: vllm @@ -143,7 +143,7 @@ runs: fi - name: Bootstrap buildkit - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit with: builder_name: ${{ inputs.builder_name }} buildkit_worker_addresses: ${{ inputs.fresh_builder != 'true' && steps.prepare.outputs.worker_addresses || '' }} diff --git a/.github/actions/setup-dynamo-operator/action.yml b/.github/actions/setup-dynamo-operator/action.yml index 44fa18956d5d..8eb6e1c809d0 100644 --- a/.github/actions/setup-dynamo-operator/action.yml +++ b/.github/actions/setup-dynamo-operator/action.yml @@ -144,7 +144,7 @@ runs: echo "operator_tag=${{ inputs.operator_tag }}" >> "$GITHUB_OUTPUT" - name: Install vCluster CLI - uses: ./.github/actions/install-vcluster-cli + uses: $/.github/actions/install-vcluster-cli - name: Create host namespace shell: bash @@ -395,7 +395,7 @@ runs: - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: host_kubeconfig_base64: ${{ inputs.kubeconfig_base64 }} vcluster_name: ${{ steps.resolve-names.outputs.vcluster_name }} diff --git a/.github/actions/skopeo-copy/action.yml b/.github/actions/skopeo-copy/action.yml index 311e29334a6b..57bbb9a83250 100644 --- a/.github/actions/skopeo-copy/action.yml +++ b/.github/actions/skopeo-copy/action.yml @@ -67,7 +67,7 @@ runs: using: "composite" steps: - name: Login to Source Registry - uses: ./.github/actions/skopeo-login + uses: $/.github/actions/skopeo-login with: aws_default_region: ${{ inputs.source_aws_default_region }} ecr_registry: ${{ inputs.source_ecr_registry }} @@ -76,7 +76,7 @@ runs: azure_acr_password: ${{ inputs.source_azure_acr_password }} - name: Login to Target Registry - uses: ./.github/actions/skopeo-login + uses: $/.github/actions/skopeo-login with: aws_default_region: ${{ inputs.target_aws_default_region }} ecr_registry: ${{ inputs.target_ecr_registry }} diff --git a/.github/actions/teardown-dynamo-operator/action.yml b/.github/actions/teardown-dynamo-operator/action.yml index c0b421710093..bfce59a08f92 100644 --- a/.github/actions/teardown-dynamo-operator/action.yml +++ b/.github/actions/teardown-dynamo-operator/action.yml @@ -57,7 +57,7 @@ runs: echo "KUBECONFIG=${{ github.workspace }}/.kubeconfig" >> $GITHUB_ENV - name: Install vCluster CLI - uses: ./.github/actions/install-vcluster-cli + uses: $/.github/actions/install-vcluster-cli - name: Delete vCluster shell: bash diff --git a/.github/filters.yaml b/.github/filters.yaml index 56cd2ac28285..4b80915e7b5f 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -118,6 +118,7 @@ ignore: - '.github/dco.yml' - '.github/secret_scanning.yml' - '.github/allurerc.mjs' + - '.github/actionlint.yaml' - 'container/Dockerfile.docs' - 'container/run.sh' - 'container/use-sccache.sh' diff --git a/.github/workflows/allure-report.yml b/.github/workflows/allure-report.yml index 223292af777a..6e025d97bb7e 100644 --- a/.github/workflows/allure-report.yml +++ b/.github/workflows/allure-report.yml @@ -62,7 +62,7 @@ jobs: generate-report: needs: resolve-params - uses: ./.github/workflows/generate-allure-report.yml + uses: $/.github/workflows/generate-allure-report.yml with: run_id: ${{ needs.resolve-params.outputs.run_id }} subdir: ${{ needs.resolve-params.outputs.subdir }} diff --git a/.github/workflows/build-on-demand.yml b/.github/workflows/build-on-demand.yml index 63db1a3fb034..2ba8e7ed5f88 100644 --- a/.github/workflows/build-on-demand.yml +++ b/.github/workflows/build-on-demand.yml @@ -53,7 +53,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [init] if: inputs.build_vllm - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -67,7 +67,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [init] if: inputs.build_sglang - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -81,7 +81,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [init] if: inputs.build_trtllm - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -94,7 +94,7 @@ jobs: vllm-copy-to-acr: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.vllm-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' @@ -104,7 +104,7 @@ jobs: sglang-copy-to-acr: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.sglang-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' @@ -114,7 +114,7 @@ jobs: trtllm-copy-to-acr: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.trtllm-build.outputs.target_tag_plain }} cuda_version: '["13.1"]' @@ -139,14 +139,14 @@ jobs: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Initialize Dynamo Builder - uses: ./.github/actions/init-dynamo-builder + uses: $/.github/actions/init-dynamo-builder with: builder_name: ${{ needs.init.outputs.builder_name }} flavor: general arch: 'linux/amd64,linux/arm64' namespace: ${{ vars.BUILDKIT_NAMESPACE }} - name: Docker Login - uses: ./.github/actions/docker-login + uses: $/.github/actions/docker-login with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION }} ecr_registry: ${{ vars.ECR_REGISTRY }} @@ -197,7 +197,7 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Create K8s builders (skip bootstrap) - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit continue-on-error: true with: builder_name: ${{ needs.init.outputs.builder_name }} diff --git a/.github/workflows/dynamo-pipeline.yml b/.github/workflows/dynamo-pipeline.yml index 07abaea97e0e..202407fd2f92 100644 --- a/.github/workflows/dynamo-pipeline.yml +++ b/.github/workflows/dynamo-pipeline.yml @@ -74,7 +74,7 @@ on: jobs: image: - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: runtime @@ -204,7 +204,7 @@ jobs: parallel: name: test needs: image - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: dynamo test_type: parallel @@ -225,7 +225,7 @@ jobs: sequential: name: test needs: image - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: dynamo test_type: sequential @@ -246,7 +246,7 @@ jobs: gpu: name: test needs: image - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: dynamo test_type: gpu diff --git a/.github/workflows/fern-docs.yml b/.github/workflows/fern-docs.yml index 4684a220c6b5..12f25416d108 100644 --- a/.github/workflows/fern-docs.yml +++ b/.github/workflows/fern-docs.yml @@ -88,7 +88,7 @@ jobs: # Do not use fetch-depth: 0 — changed-files now works with shallow clone - name: Check for changes id: changes - uses: ./.github/actions/changed-files + uses: $/.github/actions/changed-files with: gh_token: ${{ github.token }} diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index a423a7b2ffb2..5b8d7785f7f6 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -56,7 +56,7 @@ jobs: run: | echo "builder_name=${{ env.BUILDER_NAME }}" >> $GITHUB_OUTPUT - name: Create and bootstrap fresh K8s builder - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit with: builder_name: ${{ steps.export-builder-name.outputs.builder_name }} buildkit_worker_addresses: '' @@ -251,7 +251,7 @@ jobs: vllm-build: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -280,7 +280,7 @@ jobs: sglang-build: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -306,7 +306,7 @@ jobs: trtllm-build: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -361,7 +361,7 @@ jobs: # Do not use fetch-depth: 0 — it fetches all 1600+ branches (~3 min) - name: Build and push operator (nightly tag) id: build - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: operator image_tag: ${{ github.sha }}-operator-nightly @@ -387,7 +387,7 @@ jobs: planner-build: name: dynamo-planner needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: planner @@ -415,7 +415,7 @@ jobs: frontend-build: name: dynamo-frontend needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: frontend @@ -440,7 +440,7 @@ jobs: vllm-efa-build: name: vllm-runtime-efa needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -464,7 +464,7 @@ jobs: sglang-efa-build: name: sglang-runtime-efa needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -488,7 +488,7 @@ jobs: trtllm-efa-build: name: trtllm-runtime-efa needs: [create-fresh-builder, resolve-source-sha, compute-dev-version] - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -519,7 +519,7 @@ jobs: name: vllm-runtime-nightly needs: [compute-release-mode, vllm-build] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ format('{0}-nightly', needs.vllm-build.outputs.target_tag_plain) }} cuda_version: '["13.0"]' @@ -530,7 +530,7 @@ jobs: name: sglang-runtime-nightly needs: [compute-release-mode, sglang-build] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ format('{0}-nightly', needs.sglang-build.outputs.target_tag_plain) }} cuda_version: '["13.0"]' @@ -541,7 +541,7 @@ jobs: name: trtllm-runtime-nightly needs: [compute-release-mode, trtllm-build] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ format('{0}-nightly', needs.trtllm-build.outputs.target_tag_plain) }} cuda_version: '["13.1"]' @@ -563,7 +563,7 @@ jobs: ref: ${{ needs.resolve-source-sha.outputs.source_sha }} - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -584,7 +584,7 @@ jobs: name: vLLM Nightly Deploy Test needs: [compute-release-mode, deploy-operator, vllm-build, vllm-copy-to-acr] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: vllm profiles: '["agg", "agg_router_kv_approx"]' @@ -598,7 +598,7 @@ jobs: name: sglang Nightly Deploy Test needs: [compute-release-mode, deploy-operator, sglang-build, sglang-copy-to-acr] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: sglang profiles: '["agg"]' @@ -612,7 +612,7 @@ jobs: name: TensorRT-LLM Nightly Deploy Test needs: [compute-release-mode, deploy-operator, trtllm-build, trtllm-copy-to-acr] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: trtllm profiles: '["agg"]' @@ -633,7 +633,7 @@ jobs: persist-credentials: false - name: Teardown vCluster if: needs.deploy-operator.outputs.namespace != '' && needs.deploy-operator.outputs.vcluster_name != '' - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} @@ -656,7 +656,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -683,7 +683,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -708,7 +708,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -734,7 +734,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -763,7 +763,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -785,7 +785,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -811,7 +811,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -839,7 +839,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -861,7 +861,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build, resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: nightly dd_flaky_retry_enabled: 'false' @@ -891,7 +891,7 @@ jobs: name: vllm-xpu needs: [resolve-source-sha, compute-release-mode] if: ${{ needs.compute-release-mode.outputs.run_tests == 'true' }} - uses: ./.github/workflows/xpu-ci.yaml + uses: $/.github/workflows/xpu-ci.yaml with: framework: vllm pytest_markers: 'vllm' @@ -903,7 +903,7 @@ jobs: dynamo-pipeline: name: dynamo-runtime needs: [create-fresh-builder, compute-dev-version, resolve-source-sha] - uses: ./.github/workflows/dynamo-pipeline.yml + uses: $/.github/workflows/dynamo-pipeline.yml with: builder_name: ${{ needs.create-fresh-builder.outputs.builder_name }} fresh_builder: true @@ -1042,7 +1042,7 @@ jobs: && needs.dynamo-pipeline.result == 'success' && (needs.manual-release-approval.result == 'success' || needs.manual-release-approval.result == 'skipped') }} - uses: ./.github/workflows/release.yml + uses: $/.github/workflows/release.yml with: commit_sha: ${{ needs.resolve-source-sha.outputs.source_sha }} nightly: true @@ -1279,7 +1279,7 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Register K8s builder context (skip bootstrap) - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit continue-on-error: true with: builder_name: ${{ needs.create-fresh-builder.outputs.builder_name }} @@ -1298,7 +1298,7 @@ jobs: permissions: contents: read actions: read # grant the reusable notifier read access to list this run's jobs - uses: ./.github/workflows/notify-slack.yml + uses: $/.github/workflows/notify-slack.yml with: pipeline_name: Nightly runs_on: prod-default-v2 diff --git a/.github/workflows/notify-slack.yml b/.github/workflows/notify-slack.yml index cc71e8040252..22f265ef82a5 100644 --- a/.github/workflows/notify-slack.yml +++ b/.github/workflows/notify-slack.yml @@ -1,6 +1,6 @@ # Reusable Slack failure notifier shared by the Post-merge and Nightly CI pipelines. # Collects the calling run's failed jobs and, if any are reportable, posts an alert -# to Slack. Called via `uses: ./.github/workflows/notify-slack.yml`. +# to Slack. Called via `uses: $/.github/workflows/notify-slack.yml`. name: Notify Slack on: diff --git a/.github/workflows/post-merge-ci.yml b/.github/workflows/post-merge-ci.yml index 428ecdf256b6..1f3ae2c44188 100644 --- a/.github/workflows/post-merge-ci.yml +++ b/.github/workflows/post-merge-ci.yml @@ -56,7 +56,7 @@ jobs: dynamo-pipeline: name: dynamo-runtime if: github.event_name != 'workflow_dispatch' - uses: ./.github/workflows/dynamo-pipeline.yml + uses: $/.github/workflows/dynamo-pipeline.yml with: builder_name: b-${{ github.run_id }}-${{ github.run_attempt }} # TODO: widen to include `post_merge` — today it picks up tests @@ -89,7 +89,7 @@ jobs: # Do not use fetch-depth: 0 — it fetches all 1600+ branches (~3 min) - name: Build and push operator id: build - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: operator image_tag: ${{ github.sha }}-operator @@ -121,7 +121,7 @@ jobs: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Build and push power agent - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: power-agent target: runtime # push the slim shipped stage, not the test stage @@ -139,7 +139,7 @@ jobs: - name: Refresh BuildKit builder # The runtime build above can leave the remote BuildKit connection stale; # re-establish it (re-routing only if unhealthy) before the test build. - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: b-${{ github.run_id }}-${{ github.run_attempt }} flavor: general @@ -174,7 +174,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -197,7 +197,7 @@ jobs: name: vllm-dev needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: dev @@ -215,7 +215,7 @@ jobs: name: vllm-runtime-efa needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -239,7 +239,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -262,7 +262,7 @@ jobs: name: sglang-dev needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: dev @@ -280,7 +280,7 @@ jobs: name: sglang-runtime-efa needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -304,7 +304,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -327,7 +327,7 @@ jobs: name: trtllm-dev needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: dev @@ -345,7 +345,7 @@ jobs: name: trtllm-runtime-efa needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -368,7 +368,7 @@ jobs: planner-build: name: planner # This name overlaps with other planner jobs to group them in the UI if: github.event_name != 'workflow_dispatch' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: planner @@ -391,7 +391,7 @@ jobs: name: frontend needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: frontend @@ -417,7 +417,7 @@ jobs: vllm-test: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: vllm @@ -440,7 +440,7 @@ jobs: vllm-multi-gpu-test: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: vllm @@ -457,7 +457,7 @@ jobs: vllm-efa-test: name: vllm-runtime-efa needs: [vllm-efa-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: vllm-efa @@ -475,7 +475,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [config, vllm-build] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: kvbm @@ -498,7 +498,7 @@ jobs: sglang-test: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: sglang @@ -521,7 +521,7 @@ jobs: sglang-multi-gpu-test: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: sglang @@ -538,7 +538,7 @@ jobs: trtllm-test: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: trtllm @@ -561,7 +561,7 @@ jobs: trtllm-multi-gpu-test: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: trtllm @@ -578,7 +578,7 @@ jobs: trtllm-efa-test: name: trtllm-runtime-efa needs: [trtllm-efa-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: trtllm-efa @@ -595,7 +595,7 @@ jobs: planner-test: name: planner # This name overlaps with other planner jobs to group them in the UI needs: [planner-build] - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: dd_env: post-merge test_suite_name: planner @@ -620,7 +620,7 @@ jobs: name: vllm-xpu needs: [config] if: github.event_name != 'workflow_dispatch' || needs.config.outputs.run_vllm == 'true' - uses: ./.github/workflows/xpu-ci.yaml + uses: $/.github/workflows/xpu-ci.yaml with: framework: vllm pytest_markers: '(pre_merge or post_merge) and vllm' @@ -641,7 +641,7 @@ jobs: planner-compliance: name: planner # This name overlaps with other planner jobs to group them in the UI needs: [planner-build] - uses: ./.github/workflows/shared-compliance.yml + uses: $/.github/workflows/shared-compliance.yml with: framework: dynamo target: planner @@ -657,7 +657,7 @@ jobs: vllm-copy-to-acr: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.vllm-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' # Deploy tests only use CUDA 13 @@ -677,7 +677,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-vllm-placeholder @@ -697,7 +697,7 @@ jobs: vllm-dev-copy-to-acr: name: vllm-dev # This name overlaps with other vllm jobs to group them in the UI needs: [vllm-dev-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.vllm-dev-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' @@ -708,7 +708,7 @@ jobs: sglang-copy-to-acr: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [sglang-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.sglang-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' # Deploy tests only use CUDA 13 @@ -728,7 +728,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-sglang-placeholder @@ -751,7 +751,7 @@ jobs: if: | always() && needs.sglang-dev-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.sglang-dev-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' @@ -762,7 +762,7 @@ jobs: trtllm-copy-to-acr: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [trtllm-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.trtllm-build.outputs.target_tag_plain }} cuda_version: '["13.1"]' @@ -782,7 +782,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-trtllm-placeholder @@ -805,7 +805,7 @@ jobs: if: | always() && needs.trtllm-dev-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.trtllm-dev-build.outputs.target_tag_plain }} cuda_version: '["13.1"]' @@ -816,7 +816,7 @@ jobs: frontend-copy-to-acr: name: frontend # This name overlaps with other frontend jobs to group them in the UI needs: [frontend-build] - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.frontend-build.outputs.target_tag_plain }} cuda_version: '[""]' @@ -831,7 +831,7 @@ jobs: always() && !cancelled() && github.event_name != 'workflow_dispatch' && needs.planner-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.planner-build.outputs.target_tag_plain }} target_image: ai-dynamo/dynamo-planner @@ -863,7 +863,7 @@ jobs: persist-credentials: false - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -880,7 +880,7 @@ jobs: deploy-test-vllm: needs: [deploy-operator, vllm-copy-to-acr] - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: vllm profiles: '["agg", "agg_router", "disagg", "disagg_router"]' @@ -892,7 +892,7 @@ jobs: deploy-test-sglang: needs: [deploy-operator, sglang-copy-to-acr] - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: sglang profiles: '["agg", "agg_router"]' @@ -904,7 +904,7 @@ jobs: deploy-test-trtllm: needs: [deploy-operator, trtllm-copy-to-acr] - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: trtllm profiles: '["agg", "agg_router"]' @@ -918,7 +918,7 @@ jobs: name: DGDR Deploy Test needs: [deploy-operator, planner-copy-to-acr] if: github.event_name != 'workflow_dispatch' - uses: ./.github/workflows/shared-dgdr-deploy-test.yml + uses: $/.github/workflows/shared-dgdr-deploy-test.yml with: namespace: ${{ needs.deploy-operator.outputs.namespace }} vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} @@ -945,7 +945,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -975,7 +975,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1005,7 +1005,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1035,13 +1035,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} @@ -1055,12 +1055,12 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1080,13 +1080,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} @@ -1100,12 +1100,12 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1125,13 +1125,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} @@ -1145,12 +1145,12 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1172,13 +1172,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} @@ -1192,18 +1192,18 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1236,13 +1236,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} @@ -1256,18 +1256,18 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1300,13 +1300,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} @@ -1320,18 +1320,18 @@ jobs: checkpoint_storage_size: 64Gi - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1357,7 +1357,7 @@ jobs: persist-credentials: false - name: Teardown vCluster if: needs.deploy-operator.outputs.namespace != '' && needs.deploy-operator.outputs.vcluster_name != '' - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} @@ -1370,7 +1370,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-vllm vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-vllm-dt @@ -1383,7 +1383,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-sglang vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-sglang-dt @@ -1396,7 +1396,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-trtllm vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-trtllm-dt @@ -1416,13 +1416,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} @@ -1434,7 +1434,7 @@ jobs: dockerhub_password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} @@ -1450,7 +1450,7 @@ jobs: rm -f ${{ github.workspace }}/.kubeconfig_gaie - name: Run GAIE Deploy Test id: deploy-test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1509,7 +1509,7 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Create K8s builders (skip bootstrap) - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit continue-on-error: true with: builder_name: b-${{ github.run_id }}-${{ github.run_attempt }} @@ -1528,7 +1528,7 @@ jobs: permissions: contents: read actions: read # grant the reusable notifier read access to list this run's jobs - uses: ./.github/workflows/notify-slack.yml + uses: $/.github/workflows/notify-slack.yml with: pipeline_name: Post-Merge runs_on: ubuntu-slim diff --git a/.github/workflows/pr-xpu.yaml b/.github/workflows/pr-xpu.yaml index 48cf074a8f2b..6b5a64bc3525 100644 --- a/.github/workflows/pr-xpu.yaml +++ b/.github/workflows/pr-xpu.yaml @@ -61,7 +61,7 @@ jobs: fetch-depth: 0 - name: Check for changes id: changes - uses: ./.github/actions/changed-files + uses: $/.github/actions/changed-files with: gh_token: ${{ github.token }} @@ -74,7 +74,7 @@ jobs: if: >- needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.vllm == 'true' - uses: ./.github/workflows/xpu-ci.yaml + uses: $/.github/workflows/xpu-ci.yaml with: framework: vllm pytest_markers: 'vllm and pre_merge and not multimodal' diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index e31eac47296b..f18e3ecc5940 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -112,7 +112,7 @@ jobs: # Do not use fetch-depth: 0 — changed-files now works with shallow clone - name: Check for changes id: changes - uses: ./.github/actions/changed-files + uses: $/.github/actions/changed-files with: gh_token: ${{ github.token }} - name: Export builder name @@ -240,7 +240,7 @@ jobs: # Do not use fetch-depth: 0 — it fetches all 1600+ branches (~3 min) - name: Build and push operator id: build - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: operator image_tag: ${{ github.sha }}-operator @@ -296,7 +296,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # Do not use fetch-depth: 0 — it fetches all 1600+ branches (~3 min) - name: Build and push power agent - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: power-agent target: runtime # push the slim shipped stage, not the test stage @@ -309,7 +309,7 @@ jobs: - name: Refresh BuildKit builder # The runtime build above can leave the remote BuildKit connection stale; # re-establish it (re-routing only if unhealthy) before the test build. - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: ${{ needs.changed-files.outputs.builder_name }} flavor: general @@ -358,7 +358,7 @@ jobs: needs.changed-files.outputs.operator == 'true' || needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -386,7 +386,7 @@ jobs: name: vllm-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: dev @@ -401,7 +401,7 @@ jobs: name: vllm-local-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.vllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: local-dev @@ -429,7 +429,7 @@ jobs: needs.changed-files.outputs.operator == 'true' || needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -457,7 +457,7 @@ jobs: name: sglang-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: dev @@ -472,7 +472,7 @@ jobs: name: sglang-local-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.sglang == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: local-dev @@ -500,7 +500,7 @@ jobs: needs.changed-files.outputs.operator == 'true' || needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -528,7 +528,7 @@ jobs: name: trtllm-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: dev @@ -543,7 +543,7 @@ jobs: name: trtllm-local-dev needs: [changed-files] if: needs.changed-files.outputs.dev_images == 'true' || needs.changed-files.outputs.trtllm == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: local-dev @@ -562,7 +562,7 @@ jobs: name: vllm-runtime-efa needs: [changed-files] if: needs.changed-files.outputs.vllm == 'true' || needs.changed-files.outputs.efa == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: vllm target: runtime @@ -591,7 +591,7 @@ jobs: name: sglang-runtime-efa needs: [changed-files] if: needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.efa == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: sglang target: runtime @@ -620,7 +620,7 @@ jobs: name: trtllm-runtime-efa needs: [changed-files] if: needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.efa == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: trtllm target: runtime @@ -652,7 +652,7 @@ jobs: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.planner == 'true' || needs.changed-files.outputs.operator == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: planner @@ -701,7 +701,7 @@ jobs: go-version-file: deploy/operator/go.mod cache-dependency-path: deploy/operator/go.sum - name: Log in to ECR - uses: ./.github/actions/docker-login + uses: $/.github/actions/docker-login with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION }} ecr_registry: ${{ vars.ECR_REGISTRY }} @@ -724,7 +724,7 @@ jobs: needs.changed-files.outputs.snapshot_sglang == 'true' || needs.changed-files.outputs.snapshot_trtllm == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-build-image.yml + uses: $/.github/workflows/shared-build-image.yml with: framework: dynamo target: frontend @@ -756,7 +756,7 @@ jobs: name: vllm-runtime # This name overlaps with other vllm jobs to group them in the UI needs: [changed-files, vllm-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.vllm == 'true' || needs.changed-files.outputs.deploy == 'true' || needs.changed-files.outputs.sample == 'true' - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: vllm test_type: Test @@ -782,7 +782,7 @@ jobs: (needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.vllm == 'true' || needs.changed-files.outputs.deploy == 'true') - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: vllm test_type: Multi-GPU Test @@ -799,7 +799,7 @@ jobs: name: sglang-runtime # This name overlaps with other sglang jobs to group them in the UI needs: [changed-files, sglang-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: sglang test_type: Test @@ -825,7 +825,7 @@ jobs: (needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.deploy == 'true') - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: sglang test_type: Multi-GPU Test @@ -842,7 +842,7 @@ jobs: name: trtllm-runtime # This name overlaps with other trtllm jobs to group them in the UI needs: [changed-files, trtllm-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: trtllm test_type: Test @@ -868,7 +868,7 @@ jobs: (needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.deploy == 'true') - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: trtllm test_type: Multi-GPU Test @@ -885,7 +885,7 @@ jobs: name: planner # This name overlaps with other planner jobs to group them in the UI needs: [changed-files, planner-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.planner == 'true' - uses: ./.github/workflows/shared-test.yml + uses: $/.github/workflows/shared-test.yml with: test_suite_name: planner test_type: CPU Test @@ -938,7 +938,7 @@ jobs: needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.benchmarks == 'true' - uses: ./.github/workflows/dynamo-pipeline.yml + uses: $/.github/workflows/dynamo-pipeline.yml with: builder_name: ${{ needs.changed-files.outputs.builder_name }} build_timeout_minutes: 60 @@ -975,7 +975,7 @@ jobs: name: vllm-runtime # grouped in the UI with other vllm jobs needs: [changed-files, vllm-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.vllm == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-compliance-audit.yml + uses: $/.github/workflows/shared-compliance-audit.yml with: framework: vllm target: runtime @@ -989,7 +989,7 @@ jobs: name: sglang-runtime # grouped in the UI with other sglang jobs needs: [changed-files, sglang-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-compliance-audit.yml + uses: $/.github/workflows/shared-compliance-audit.yml with: framework: sglang target: runtime @@ -1001,7 +1001,7 @@ jobs: name: trtllm-runtime # grouped in the UI with other trtllm jobs needs: [changed-files, trtllm-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-compliance-audit.yml + uses: $/.github/workflows/shared-compliance-audit.yml with: framework: trtllm target: runtime @@ -1022,7 +1022,7 @@ jobs: needs.changed-files.outputs.snapshot_sglang == 'true' || needs.changed-files.outputs.snapshot_trtllm == 'true' || needs.changed-files.outputs.deploy == 'true' - uses: ./.github/workflows/shared-compliance-audit.yml + uses: $/.github/workflows/shared-compliance-audit.yml with: framework: dynamo target: frontend @@ -1038,7 +1038,7 @@ jobs: name: planner # This name overlaps with other planner jobs to group them in the UI needs: [changed-files, planner-build] if: needs.changed-files.outputs.core == 'true' || needs.changed-files.outputs.planner == 'true' - uses: ./.github/workflows/shared-compliance.yml + uses: $/.github/workflows/shared-compliance.yml with: framework: dynamo target: planner @@ -1063,7 +1063,7 @@ jobs: needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_vllm == 'true') && needs.vllm-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.vllm-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' # Deploy tests only use CUDA 13 @@ -1080,7 +1080,7 @@ jobs: needs.changed-files.outputs.snapshot_sglang == 'true' || needs.changed-files.outputs.snapshot_trtllm == 'true') && needs.frontend-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.frontend-build.outputs.target_tag_plain }} cuda_version: '[""]' @@ -1096,7 +1096,7 @@ jobs: (needs.changed-files.outputs.operator == 'true' || needs.changed-files.outputs.dgdr == 'true') && needs.planner-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.planner-build.outputs.target_tag_plain }} target_image: ai-dynamo/dynamo-planner @@ -1126,7 +1126,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-vllm-placeholder @@ -1155,7 +1155,7 @@ jobs: needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_sglang == 'true') && needs.sglang-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.sglang-build.outputs.target_tag_plain }} cuda_version: '["13.0"]' # Deploy tests only use CUDA 13 @@ -1178,7 +1178,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-sglang-placeholder @@ -1207,7 +1207,7 @@ jobs: needs.changed-files.outputs.snapshot == 'true' || needs.changed-files.outputs.snapshot_trtllm == 'true') && needs.trtllm-build.result == 'success' - uses: ./.github/workflows/shared-copy.yml + uses: $/.github/workflows/shared-copy.yml with: target_tag_plain: ${{ needs.trtllm-build.outputs.target_tag_plain }} cuda_version: '["13.1"]' @@ -1231,7 +1231,7 @@ jobs: with: persist-credentials: false - name: Build and push snapshot placeholder - uses: ./.github/actions/build-deploy-component + uses: $/.github/actions/build-deploy-component with: component: checkpoint-placeholder image_tag: ${{ github.sha }}-trtllm-placeholder @@ -1277,7 +1277,7 @@ jobs: persist-credentials: false - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1301,7 +1301,7 @@ jobs: (needs.changed-files.outputs.vllm == 'true' || needs.changed-files.outputs.deploy == 'true' || needs.changed-files.outputs.operator == 'true') - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: vllm profiles: '["agg", "agg_router", "disagg", "disagg_router"]' @@ -1320,7 +1320,7 @@ jobs: (needs.changed-files.outputs.sglang == 'true' || needs.changed-files.outputs.deploy == 'true' || needs.changed-files.outputs.operator == 'true') - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: sglang profiles: '["agg", "agg_router"]' @@ -1339,7 +1339,7 @@ jobs: (needs.changed-files.outputs.trtllm == 'true' || needs.changed-files.outputs.deploy == 'true' || needs.changed-files.outputs.operator == 'true') - uses: ./.github/workflows/shared-deploy-test.yml + uses: $/.github/workflows/shared-deploy-test.yml with: framework: trtllm profiles: '["agg", "agg_router"]' @@ -1356,7 +1356,7 @@ jobs: !cancelled() && !failure() && (needs.changed-files.outputs.operator == 'true' || needs.changed-files.outputs.dgdr == 'true') - uses: ./.github/workflows/shared-dgdr-deploy-test.yml + uses: $/.github/workflows/shared-dgdr-deploy-test.yml with: namespace: ${{ needs.deploy-operator.outputs.namespace }} vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} @@ -1388,7 +1388,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1426,7 +1426,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1464,7 +1464,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup vCluster and operator id: setup - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: # Sole writer of this vCluster name; every other caller recovers into it. reset_existing: 'true' @@ -1500,13 +1500,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} @@ -1523,12 +1523,12 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1551,13 +1551,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} @@ -1574,12 +1574,12 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1602,13 +1602,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} @@ -1625,12 +1625,12 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Install snapshot-agent - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1655,13 +1655,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} @@ -1678,18 +1678,18 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-vllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-vllm.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1728,13 +1728,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} @@ -1751,18 +1751,18 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-sglang.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-sglang.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1801,13 +1801,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Self-bootstrap vCluster (rerun) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} @@ -1824,18 +1824,18 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator-checkpoint-trtllm.outputs.namespace }} - name: Install snapshot-agent (rerun bootstrap) if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-snapshot-agent + uses: $/.github/actions/setup-snapshot-agent with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default - name: Run DynamoCheckpoint Deploy Test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default @@ -1866,7 +1866,7 @@ jobs: persist-credentials: false - name: Teardown vCluster if: needs.deploy-operator.outputs.namespace != '' && needs.deploy-operator.outputs.vcluster_name != '' - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ${{ needs.deploy-operator.outputs.vcluster_name }} vcluster_namespace: ${{ needs.deploy-operator.outputs.namespace }} @@ -1883,7 +1883,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-vllm vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-vllm-dt @@ -1900,7 +1900,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-sglang vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-sglang-dt @@ -1917,7 +1917,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Teardown vCluster - uses: ./.github/actions/teardown-dynamo-operator + uses: $/.github/actions/teardown-dynamo-operator with: vcluster_name: ci-${{ github.run_id }}-checkpoint-trtllm vcluster_namespace: gh-id-${{ github.run_id }}-checkpoint-trtllm-dt @@ -1951,7 +1951,7 @@ jobs: with: persist-credentials: false - name: Create K8s builders (skip bootstrap) - uses: ./.github/actions/bootstrap-buildkit + uses: $/.github/actions/bootstrap-buildkit continue-on-error: true with: builder_name: ${{ needs.changed-files.outputs.builder_name }} @@ -1993,7 +1993,7 @@ jobs: if: false # Disabled: gh-pages branch bloated to ~1GB after 72 commits of Allure reports # if: ${{ !cancelled() }} - uses: ./.github/workflows/generate-allure-report.yml + uses: $/.github/workflows/generate-allure-report.yml with: run_id: ${{ github.run_id }} subdir: pr diff --git a/.github/workflows/pre-merge.yml b/.github/workflows/pre-merge.yml index 4b563006ca7c..a0b55aab504e 100644 --- a/.github/workflows/pre-merge.yml +++ b/.github/workflows/pre-merge.yml @@ -43,7 +43,7 @@ jobs: # Do not use fetch-depth: 0 — changed-files now works with shallow clone - name: Check for changes id: changes - uses: ./.github/actions/changed-files + uses: $/.github/actions/changed-files with: gh_token: ${{ github.token }} @@ -342,7 +342,7 @@ jobs: fetch-depth: 0 # clustertest derives its alpha version from v1.3.0 - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1 - name: Run operator checks - uses: ./.github/actions/check-deploy-component + uses: $/.github/actions/check-deploy-component with: component: operator platform: linux/amd64 diff --git a/.github/workflows/request-nvskills-ci.yml b/.github/workflows/request-nvskills-ci.yml index 10ae44753a18..34c8147e3c61 100644 --- a/.github/workflows/request-nvskills-ci.yml +++ b/.github/workflows/request-nvskills-ci.yml @@ -14,6 +14,6 @@ permissions: jobs: team-request: - uses: ./.github/workflows/nvskills-team-request.yml + uses: $/.github/workflows/nvskills-team-request.yml secrets: NVSKILLS_CI_DISPATCH_TOKEN: ${{ secrets.NVSKILLS_CI_DISPATCH_TOKEN }} diff --git a/.github/workflows/shared-build-image.yml b/.github/workflows/shared-build-image.yml index a5432f6d02c0..27e44ac6ec83 100644 --- a/.github/workflows/shared-build-image.yml +++ b/.github/workflows/shared-build-image.yml @@ -224,7 +224,7 @@ jobs: ref: ${{ inputs.source_ref != '' && inputs.source_ref || github.sha }} lfs: true - name: Docker Login - uses: ./.github/actions/docker-login + uses: $/.github/actions/docker-login with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION }} ecr_registry: ${{ vars.ECR_REGISTRY }} @@ -301,7 +301,7 @@ jobs: echo "builder_flavor=${{ inputs.framework }}" >> $GITHUB_OUTPUT fi - name: Initialize Dynamo Builder - uses: ./.github/actions/init-dynamo-builder + uses: $/.github/actions/init-dynamo-builder with: builder_name: ${{ inputs.builder_name }} flavor: ${{ steps.calculate-builder-flavor.outputs.builder_flavor }} @@ -443,7 +443,7 @@ jobs: "${GITHUB_WORKSPACE}/.epp-sbom/sbom-go-licenses" 2>/dev/null | head -40 - name: Refresh BuildKit builder (For Frontend Only) if: ${{ inputs.target == 'frontend' }} - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: ${{ inputs.builder_name }} flavor: ${{ steps.calculate-builder-flavor.outputs.builder_flavor }} @@ -490,7 +490,7 @@ jobs: - name: Build and Push Image id: build-image if: ${{ !inputs.compliance_only }} - uses: ./.github/actions/docker-remote-build + uses: $/.github/actions/docker-remote-build with: image_tag: ${{ steps.calculate-target-tag.outputs.image_uri }} framework: ${{ inputs.framework }} @@ -573,7 +573,7 @@ jobs: # re-route first or the extract just dies on buildx's 20s connect timeout. - name: Refresh BuildKit builder if: ${{ (inputs.compliance_only || inputs.inline_compliance) && inputs.target != 'dev' && inputs.target != 'local-dev' }} - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: ${{ inputs.builder_name }} flavor: ${{ steps.calculate-builder-flavor.outputs.builder_flavor }} @@ -582,7 +582,7 @@ jobs: namespace: ${{ vars.BUILDKIT_NAMESPACE }} - name: Compliance extract if: ${{ (inputs.compliance_only || inputs.inline_compliance) && inputs.target != 'dev' && inputs.target != 'local-dev' }} - uses: ./.github/actions/compliance-extract + uses: $/.github/actions/compliance-extract with: # Diff baseline resolved above (empty when diffing is disabled or no # baseline applies); gh_token lets the action fetch it cross-run. @@ -617,7 +617,7 @@ jobs: archive_sources: ${{ inputs.archive_sources }} - name: Refresh BuildKit builder if: ${{ inputs.target != 'dev' && inputs.target != 'local-dev' && inputs.target != 'frontend' }} - uses: ./.github/actions/builder-refresher + uses: $/.github/actions/builder-refresher with: builder_name: ${{ inputs.builder_name }} flavor: ${{ steps.calculate-builder-flavor.outputs.builder_flavor }} diff --git a/.github/workflows/shared-compliance.yml b/.github/workflows/shared-compliance.yml index f3bb29d84e3a..9f8eed789b15 100644 --- a/.github/workflows/shared-compliance.yml +++ b/.github/workflows/shared-compliance.yml @@ -59,7 +59,7 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Docker Login - uses: ./.github/actions/docker-login + uses: $/.github/actions/docker-login with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION }} ecr_registry: ${{ vars.ECR_REGISTRY }} @@ -84,7 +84,7 @@ jobs: RUNTIME_IMAGE=${ECR_REPOSITORY}:${IMAGE_TAG} echo "runtime_image=${RUNTIME_IMAGE}" >> $GITHUB_OUTPUT - name: Compliance scan - uses: ./.github/actions/compliance-scan + uses: $/.github/actions/compliance-scan with: image: ${{ steps.calculate-target-tag.outputs.runtime_image }} artifact_name: compliance-${{ inputs.target_tag_plain }}-${{ matrix.cuda_version }}-${{ matrix.platform }} diff --git a/.github/workflows/shared-copy.yml b/.github/workflows/shared-copy.yml index 4976a73fd3f7..51f3fa8b9b81 100644 --- a/.github/workflows/shared-copy.yml +++ b/.github/workflows/shared-copy.yml @@ -97,7 +97,7 @@ jobs: echo "image_tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT - name: Copy image to target registry timeout-minutes: ${{ inputs.copy_timeout_minutes }} - uses: ./.github/actions/skopeo-copy + uses: $/.github/actions/skopeo-copy with: source_registry: ${{ vars.ECR_REGISTRY }} source_image: ${{ vars.ECR_REPOSITORY }} diff --git a/.github/workflows/shared-deploy-test.yml b/.github/workflows/shared-deploy-test.yml index b6dbe629ad58..2ab10153c95e 100644 --- a/.github/workflows/shared-deploy-test.yml +++ b/.github/workflows/shared-deploy-test.yml @@ -48,13 +48,13 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: 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 + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} @@ -68,13 +68,13 @@ jobs: model_cache_path: ${{ vars.AZURE_MODEL_CACHE_PATH }} - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} - name: Run Dynamo Deploy Test id: deploy-test - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: default diff --git a/.github/workflows/shared-dgdr-deploy-test.yml b/.github/workflows/shared-dgdr-deploy-test.yml index 7b63fa232504..f09f2d00772a 100644 --- a/.github/workflows/shared-dgdr-deploy-test.yml +++ b/.github/workflows/shared-dgdr-deploy-test.yml @@ -47,14 +47,14 @@ jobs: - name: Check if vCluster exists id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: 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 + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} @@ -89,14 +89,14 @@ jobs: - name: Recheck vCluster before test id: vcluster-check - uses: ./.github/actions/check-vcluster-exists + uses: $/.github/actions/check-vcluster-exists with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} - name: Self-bootstrap missing vCluster if: steps.vcluster-check.outputs.exists != 'true' - uses: ./.github/actions/setup-dynamo-operator + uses: $/.github/actions/setup-dynamo-operator with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} @@ -109,7 +109,7 @@ jobs: - name: Connect to vCluster id: connect-vcluster - uses: ./.github/actions/connect-vcluster + uses: $/.github/actions/connect-vcluster with: vcluster_name: ${{ inputs.vcluster_name }} vcluster_namespace: ${{ inputs.namespace }} @@ -142,7 +142,7 @@ jobs: kubectl get secret hf-token-secret -n "${DGDR_NAMESPACE}" >/dev/null - name: Run CPU DGDR tests - uses: ./.github/actions/dynamo-deploy-test + uses: $/.github/actions/dynamo-deploy-test with: kubeconfig_base64: ${{ steps.connect-vcluster.outputs.kubeconfig_base64 }} namespace: ${{ env.DGDR_NAMESPACE }} diff --git a/.github/workflows/xpu-ci.yaml b/.github/workflows/xpu-ci.yaml index 1fe0b7e272b9..7bd3dd139637 100644 --- a/.github/workflows/xpu-ci.yaml +++ b/.github/workflows/xpu-ci.yaml @@ -177,7 +177,7 @@ jobs: fi - name: Run XPU tests - uses: ./.github/actions/pytest + uses: $/.github/actions/pytest with: pytest_marks: '${{ inputs.pytest_markers }} and xpu_1' image_tag: ${{ env.TEST_IMAGE_TAG }} @@ -225,7 +225,7 @@ jobs: docker rm -f "${CONTAINER_ID_PREFIX}_pytest" 2>/dev/null || true - name: Run XPU 2-card tests - uses: ./.github/actions/pytest + uses: $/.github/actions/pytest with: pytest_marks: '${{ inputs.pytest_markers }} and xpu_2' image_tag: ${{ env.TEST_IMAGE_TAG }}