From 548ba0c8ec849926a4fa0d7a272bbc562ab00ad8 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Wed, 17 Sep 2025 11:52:26 -0700 Subject: [PATCH 01/31] add composite workflow for backend testing Signed-off-by: Anant Sharma --- .../action.yml | 53 ++++++++++++ .../container-validation-backends.yml | 81 ++++++------------- 2 files changed, 77 insertions(+), 57 deletions(-) create mode 100644 .github/actions/backends-build-composite-action/action.yml diff --git a/.github/actions/backends-build-composite-action/action.yml b/.github/actions/backends-build-composite-action/action.yml new file mode 100644 index 0000000000..7b777c459e --- /dev/null +++ b/.github/actions/backends-build-composite-action/action.yml @@ -0,0 +1,53 @@ +name: 'Dynamo Backend Validation' +description: 'Build and test container for a Dynamo backend' +inputs: + framework: + description: 'Framework to validate' + required: true + default: 'vllm' + pytest_marks: + description: 'Pytest marks' + required: true + default: 'e2e and vllm and gpu_1 and not slow' + target: + description: 'Target to build' + required: false + default: 'runtime' + +runs: + using: "composite" + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to NGC + if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' + run: | + echo "${{ secrets.NGC_CI_ACCESS_TOKEN }}" | docker login nvcr.io -u '$oauthtoken' --password-stdin + - name: Cleanup + if: always() + run: | + docker system prune -af + - name: Build image + env: + GITHUB_TOKEN: ${{ secrets.CI_TOKEN }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + SCCACHE_S3_BUCKET: ${{ secrets.SCCACHE_S3_BUCKET }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: | + ./container/build.sh --tag ${{ matrix.framework }}:latest \ + --target ${{ inputs.target }} \ + --framework ${{ inputs.framework }} \ + --use-sccache \ + --sccache-bucket "$SCCACHE_S3_BUCKET" \ + --sccache-region "$AWS_DEFAULT_REGION" + - name: Run pytest + env: + CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} + PYTEST_XML_FILE: pytest_test_report.xml + run: | + docker run --runtime=nvidia --rm --gpus all -w /workspace \ + --network host \ + --name ${{ env.CONTAINER_ID }}_pytest \ + ${{ inputs.framework }}:latest \ + bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ inputs.pytest_marks }}\"" \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 97226fbbc6..09c68c2e94 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -9,65 +9,32 @@ on: - main - "pull-request/[0-9]+" +concurrency: + group: ${{ github.workflow }}-build-test-${{ github.ref_name || github.run_id }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + jobs: - build-test: + build-test-vllm: runs-on: gpu-l40-amd64 - strategy: - fail-fast: false - matrix: - framework: [vllm, sglang] - include: - - framework: vllm - target: runtime - pytest_marks: "e2e and vllm and gpu_1 and not slow" - - framework: sglang - target: runtime - pytest_marks: "e2e and sglang and gpu_1 and not slow" - - # Do not cancel main branch runs - concurrency: - group: ${{ github.workflow }}-${{ matrix.framework }}-build-test-${{ github.ref_name || github.run_id }} - cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} - - name: Build and Test - ${{ matrix.framework }} - env: - CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ matrix.framework }} - PYTEST_XML_FILE: pytest_test_report.xml - FRAMEWORK: ${{ matrix.framework }} - TARGET: ${{ matrix.target }} - PYTEST_MARKS: ${{ matrix.pytest_marks }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Dynamo Backend Validation + uses: ./.github/actions/backends-build-composite-action + with: + framework: vllm + pytest_marks: "e2e and vllm and gpu_1 and not slow" + target: runtime + build-test-sglang: + runs-on: gpu-l40-amd64 steps: - - name: Checkout repository + - name: Checkout code uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to NGC - if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' - run: | - echo "${{ secrets.NGC_CI_ACCESS_TOKEN }}" | docker login nvcr.io -u '$oauthtoken' --password-stdin - - name: Cleanup - if: always() - run: | - docker system prune -af - - name: Build image - env: - GITHUB_TOKEN: ${{ secrets.CI_TOKEN }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - SCCACHE_S3_BUCKET: ${{ secrets.SCCACHE_S3_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - run: | - ./container/build.sh --tag ${{ matrix.framework }}:latest \ - --target ${{ matrix.target }} \ - --framework ${{ matrix.framework }} \ - --use-sccache \ - --sccache-bucket "$SCCACHE_S3_BUCKET" \ - --sccache-region "$AWS_DEFAULT_REGION" - - name: Run pytest - run: | - docker run --runtime=nvidia --rm --gpus all -w /workspace \ - --network host \ - --name ${{ env.CONTAINER_ID }}_pytest \ - ${{ matrix.framework }}:latest \ - bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ env.PYTEST_MARKS }}\"" + - name: Dynamo Backend Validation + uses: ./.github/actions/backends-build-composite-action + with: + framework: sglang + pytest_marks: "e2e and sglang and gpu_1 and not slow" + target: runtime + \ No newline at end of file From 1821690c7a5a451c9bd591181dd44fc443d06cd1 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Wed, 17 Sep 2025 11:53:12 -0700 Subject: [PATCH 02/31] temp: run from branch Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 09c68c2e94..2dc5de2d1f 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -7,6 +7,7 @@ on: push: branches: - main + - "anants/*" - "pull-request/[0-9]+" concurrency: From 39fd0e96e6af61accdacb9f697db2e6b603d13e7 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Wed, 17 Sep 2025 11:55:14 -0700 Subject: [PATCH 03/31] test bash Signed-off-by: Anant Sharma --- .github/actions/backends-build-composite-action/action.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/actions/backends-build-composite-action/action.yml b/.github/actions/backends-build-composite-action/action.yml index 7b777c459e..6059621973 100644 --- a/.github/actions/backends-build-composite-action/action.yml +++ b/.github/actions/backends-build-composite-action/action.yml @@ -21,13 +21,16 @@ runs: uses: docker/setup-buildx-action@v3 - name: Login to NGC if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' + shell: bash run: | echo "${{ secrets.NGC_CI_ACCESS_TOKEN }}" | docker login nvcr.io -u '$oauthtoken' --password-stdin - name: Cleanup if: always() + shell: bash run: | docker system prune -af - name: Build image + shell: bash env: GITHUB_TOKEN: ${{ secrets.CI_TOKEN }} AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} @@ -35,13 +38,14 @@ runs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} run: | - ./container/build.sh --tag ${{ matrix.framework }}:latest \ + ./container/build.sh --tag ${{ inputs.framework }}:latest \ --target ${{ inputs.target }} \ --framework ${{ inputs.framework }} \ --use-sccache \ --sccache-bucket "$SCCACHE_S3_BUCKET" \ --sccache-region "$AWS_DEFAULT_REGION" - name: Run pytest + shell: bash env: CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} PYTEST_XML_FILE: pytest_test_report.xml From b2e96ae37201578b8e8796da35e4d2ceea6cfa45 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Wed, 17 Sep 2025 12:00:25 -0700 Subject: [PATCH 04/31] test env Signed-off-by: Anant Sharma --- .../action.yml | 32 +++++++++++++++---- .../container-validation-backends.yml | 12 +++++++ 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/.github/actions/backends-build-composite-action/action.yml b/.github/actions/backends-build-composite-action/action.yml index 6059621973..1529d3bca1 100644 --- a/.github/actions/backends-build-composite-action/action.yml +++ b/.github/actions/backends-build-composite-action/action.yml @@ -12,7 +12,25 @@ inputs: target: description: 'Target to build' required: false - default: 'runtime' + default: 'runtime' + ngc_ci_access_token: + description: 'NGC CI Access Token' + required: true + ci_token: + description: 'CI Token' + required: true + aws_default_region: + description: 'AWS Default Region' + required: true + sccache_s3_bucket: + description: 'SCCache S3 Bucket' + required: true + aws_access_key_id: + description: 'AWS Access Key ID' + required: true + aws_secret_access_key: + description: 'AWS Secret Access Key' + required: true runs: using: "composite" @@ -23,7 +41,7 @@ runs: if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' shell: bash run: | - echo "${{ secrets.NGC_CI_ACCESS_TOKEN }}" | docker login nvcr.io -u '$oauthtoken' --password-stdin + echo "${{ inputs.ngc_ci_access_token }}" | docker login nvcr.io -u '$oauthtoken' --password-stdin - name: Cleanup if: always() shell: bash @@ -32,11 +50,11 @@ runs: - name: Build image shell: bash env: - GITHUB_TOKEN: ${{ secrets.CI_TOKEN }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - SCCACHE_S3_BUCKET: ${{ secrets.SCCACHE_S3_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + GITHUB_TOKEN: ${{ inputs.ci_token }} + AWS_DEFAULT_REGION: ${{ inputs.aws_default_region }} + SCCACHE_S3_BUCKET: ${{ inputs.sccache_s3_bucket }} + AWS_ACCESS_KEY_ID: ${{ inputs.aws_access_key_id }} + AWS_SECRET_ACCESS_KEY: ${{ inputs.aws_secret_access_key }} run: | ./container/build.sh --tag ${{ inputs.framework }}:latest \ --target ${{ inputs.target }} \ diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 2dc5de2d1f..a56458ad9a 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -26,6 +26,12 @@ jobs: framework: vllm pytest_marks: "e2e and vllm and gpu_1 and not slow" target: runtime + ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} + ci_token: ${{ secrets.CI_TOKEN }} + aws_default_region: ${{ secrets.AWS_DEFAULT_REGION }} + sccache_s3_bucket: ${{ secrets.SCCACHE_S3_BUCKET }} + aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} build-test-sglang: runs-on: gpu-l40-amd64 @@ -38,4 +44,10 @@ jobs: framework: sglang pytest_marks: "e2e and sglang and gpu_1 and not slow" target: runtime + ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} + ci_token: ${{ secrets.CI_TOKEN }} + aws_default_region: ${{ secrets.AWS_DEFAULT_REGION }} + sccache_s3_bucket: ${{ secrets.SCCACHE_S3_BUCKET }} + aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} \ No newline at end of file From e725e3cbdeaf0181978c3c9bc97fc8ff62e18765 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Thu, 18 Sep 2025 09:04:16 -0700 Subject: [PATCH 05/31] split build and test actions Signed-off-by: Anant Sharma --- .../action.yml | 15 ++++++----- .../pytest-composite-action/action.yml | 26 +++++++++++++++++++ .../container-validation-backends.yml | 23 +++++++++++----- 3 files changed, 50 insertions(+), 14 deletions(-) rename .github/actions/{backends-build-composite-action => docker-build-composite-action}/action.yml (89%) create mode 100644 .github/actions/pytest-composite-action/action.yml diff --git a/.github/actions/backends-build-composite-action/action.yml b/.github/actions/docker-build-composite-action/action.yml similarity index 89% rename from .github/actions/backends-build-composite-action/action.yml rename to .github/actions/docker-build-composite-action/action.yml index 1529d3bca1..0921c82040 100644 --- a/.github/actions/backends-build-composite-action/action.yml +++ b/.github/actions/docker-build-composite-action/action.yml @@ -1,14 +1,10 @@ -name: 'Dynamo Backend Validation' -description: 'Build and test container for a Dynamo backend' +name: 'Dynamo Container Build' +description: 'Build Dynamo container images' inputs: framework: - description: 'Framework to validate' + description: 'Framework to build' required: true default: 'vllm' - pytest_marks: - description: 'Pytest marks' - required: true - default: 'e2e and vllm and gpu_1 and not slow' target: description: 'Target to build' required: false @@ -32,6 +28,11 @@ inputs: description: 'AWS Secret Access Key' required: true +outputs: + image_tag: + description: 'Image Tag' + value: ${{ inputs.framework }}:latest + runs: using: "composite" steps: diff --git a/.github/actions/pytest-composite-action/action.yml b/.github/actions/pytest-composite-action/action.yml new file mode 100644 index 0000000000..ee2b1f2c12 --- /dev/null +++ b/.github/actions/pytest-composite-action/action.yml @@ -0,0 +1,26 @@ +name: 'Dynamo Tests' +description: 'Run tests on Dynamo container images' +inputs: + pytest_marks: + description: 'Pytest marks' + required: true + default: 'e2e and vllm and gpu_1 and not slow' + image_tag: + description: 'Image Tag to run tests on' + required: true + + +runs: + using: "composite" + steps: + - name: Run tests + shell: bash + env: + CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} + PYTEST_XML_FILE: pytest_test_report.xml + run: | + docker run --runtime=nvidia --rm --gpus all -w /workspace \ + --network host \ + --name ${{ env.CONTAINER_ID }}_pytest \ + ${{ inputs.image_tag }} \ + bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ inputs.pytest_marks }}\"" \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index a56458ad9a..0db7821674 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -20,11 +20,11 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Dynamo Backend Validation - uses: ./.github/actions/backends-build-composite-action + - name: Build Container + id: build-image + uses: ./.github/actions/docker-build-composite-action with: framework: vllm - pytest_marks: "e2e and vllm and gpu_1 and not slow" target: runtime ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} ci_token: ${{ secrets.CI_TOKEN }} @@ -32,17 +32,22 @@ jobs: sccache_s3_bucket: ${{ secrets.SCCACHE_S3_BUCKET }} aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + - name: Run tests + uses: ./.github/actions/pytest-composite-action + with: + image_tag: ${{ steps.build-image.outputs.image_tag }} + pytest_marks: "e2e and vllm and gpu_1 and not slow" build-test-sglang: runs-on: gpu-l40-amd64 steps: - name: Checkout code uses: actions/checkout@v4 - - name: Dynamo Backend Validation - uses: ./.github/actions/backends-build-composite-action + - name: Build Container + id: build-image + uses: ./.github/actions/docker-build-composite-action with: framework: sglang - pytest_marks: "e2e and sglang and gpu_1 and not slow" target: runtime ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} ci_token: ${{ secrets.CI_TOKEN }} @@ -50,4 +55,8 @@ jobs: sccache_s3_bucket: ${{ secrets.SCCACHE_S3_BUCKET }} aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - \ No newline at end of file + - name: Run tests + uses: ./.github/actions/pytest-composite-action + with: + image_tag: ${{ steps.build-image.outputs.image_tag }} + pytest_marks: "e2e and sglang and gpu_1 and not slow" \ No newline at end of file From 5a8af8be057d11103c3d3573a73b6a5dcaf13b9f Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Thu, 18 Sep 2025 11:29:00 -0700 Subject: [PATCH 06/31] remove pytest in docker Signed-off-by: Anant Sharma --- .../docker-build-composite-action/action.yml | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/.github/actions/docker-build-composite-action/action.yml b/.github/actions/docker-build-composite-action/action.yml index 0921c82040..8e7d101bec 100644 --- a/.github/actions/docker-build-composite-action/action.yml +++ b/.github/actions/docker-build-composite-action/action.yml @@ -11,22 +11,22 @@ inputs: default: 'runtime' ngc_ci_access_token: description: 'NGC CI Access Token' - required: true + required: false ci_token: description: 'CI Token' - required: true + required: false aws_default_region: description: 'AWS Default Region' - required: true + required: false sccache_s3_bucket: description: 'SCCache S3 Bucket' - required: true + required: false aws_access_key_id: description: 'AWS Access Key ID' - required: true + required: false aws_secret_access_key: description: 'AWS Secret Access Key' - required: true + required: false outputs: image_tag: @@ -62,15 +62,4 @@ runs: --framework ${{ inputs.framework }} \ --use-sccache \ --sccache-bucket "$SCCACHE_S3_BUCKET" \ - --sccache-region "$AWS_DEFAULT_REGION" - - name: Run pytest - shell: bash - env: - CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} - PYTEST_XML_FILE: pytest_test_report.xml - run: | - docker run --runtime=nvidia --rm --gpus all -w /workspace \ - --network host \ - --name ${{ env.CONTAINER_ID }}_pytest \ - ${{ inputs.framework }}:latest \ - bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ inputs.pytest_marks }}\"" \ No newline at end of file + --sccache-region "$AWS_DEFAULT_REGION" \ No newline at end of file From bb4ee3241d38b054899175e541514545cba6d6e4 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Thu, 18 Sep 2025 13:18:56 -0700 Subject: [PATCH 07/31] test filter --- .../container-validation-backends.yml | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 0db7821674..8690fc7500 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -name: NVIDIA Dynamo Backends Github Validation +name: Dynamo Backend Validation on: push: @@ -11,12 +11,41 @@ on: - "pull-request/[0-9]+" concurrency: - group: ${{ github.workflow }}-build-test-${{ github.ref_name || github.run_id }} - cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + group: ${{ github.workflow }}-build-test-${{ github.ref_name || github.run_id }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: + changes: + runs-on: ubuntu-latest + outputs: + docs: ${{ steps.filter.outputs.docs }} + code: ${{ steps.filter.outputs.code }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Check for changes + uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + docs: + - 'docs/**' + code: + - '**' + - '!docs/**' + + pr-backend-check: + runs-on: ubuntu-latest + needs: [changes, build-test-vllm, build-test-sglang] + if: always() + steps: + - name: "Check all dependent jobs" + run: jq -en 'env.NEEDS | fromjson | all(.result as $result | ["success", "skipped"] | any($result == .))' + build-test-vllm: runs-on: gpu-l40-amd64 + needs: changes + if: needs.changes.outputs.code == 'true' steps: - name: Checkout code uses: actions/checkout@v4 @@ -40,6 +69,8 @@ jobs: build-test-sglang: runs-on: gpu-l40-amd64 + needs: changes + if: needs.changes.outputs.code == 'true' steps: - name: Checkout code uses: actions/checkout@v4 From e7c29b38305789a1ed3d514a59bc45da377cf499 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Thu, 18 Sep 2025 13:27:29 -0700 Subject: [PATCH 08/31] test --- .github/workflows/container-validation-backends.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 8690fc7500..2a94262bc0 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -33,6 +33,7 @@ jobs: code: - '**' - '!docs/**' + - '!.github/**' pr-backend-check: runs-on: ubuntu-latest From dc0d5fe91ac70754a2774944c6266233363458f6 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:11:57 -0700 Subject: [PATCH 09/31] add path filter Signed-off-by: Anant Sharma --- .github/filters.yaml | 17 +++++++++++++++++ .../workflows/container-validation-backends.yml | 8 +------- 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 .github/filters.yaml diff --git a/.github/filters.yaml b/.github/filters.yaml new file mode 100644 index 0000000000..38067d30f1 --- /dev/null +++ b/.github/filters.yaml @@ -0,0 +1,17 @@ +docs: + - "docs/**" + - "**/*.md" + - "**/*.rst" +ci: + - ".github/**" + - ".devcontainer/**" + - "container/**" +code: + - "benchmarks/**" + - "components/**" + - "deploy/**" + - "examples/**" + - "launch/**" + - "lib/**" + - "recipes/**" + - "tests/**" \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 2a94262bc0..8635f58f35 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -27,13 +27,7 @@ jobs: uses: dorny/paths-filter@v3 id: filter with: - filters: | - docs: - - 'docs/**' - code: - - '**' - - '!docs/**' - - '!.github/**' + filters: .github/filters.yaml pr-backend-check: runs-on: ubuntu-latest From 5fabb860266a917bc8bf8bd40f64013559203016 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:23:46 -0700 Subject: [PATCH 10/31] debug Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 8635f58f35..bef273d43a 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -31,11 +31,13 @@ jobs: pr-backend-check: runs-on: ubuntu-latest - needs: [changes, build-test-vllm, build-test-sglang] + needs: [build-test-vllm, build-test-sglang] if: always() steps: - name: "Check all dependent jobs" - run: jq -en 'env.NEEDS | fromjson | all(.result as $result | ["success", "skipped"] | any($result == .))' + run: | + echo '${{ toJson(needs) }}' + echo '${{ toJson(needs) }}' | jq -en 'all(.result as $result | ["success", "skipped"] | any($result == .))' build-test-vllm: runs-on: gpu-l40-amd64 From 1d47885bfd52787f584282722b20b188194bb170 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:28:58 -0700 Subject: [PATCH 11/31] debug 2 Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index bef273d43a..2d24938844 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -36,8 +36,7 @@ jobs: steps: - name: "Check all dependent jobs" run: | - echo '${{ toJson(needs) }}' - echo '${{ toJson(needs) }}' | jq -en 'all(.result as $result | ["success", "skipped"] | any($result == .))' + echo '${{ toJson(needs) }}' | jq -n 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' build-test-vllm: runs-on: gpu-l40-amd64 From 81f77e93b23850925fe4c63b1e74b2ec29cbd41f Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:30:44 -0700 Subject: [PATCH 12/31] test Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 2d24938844..e0f32c0d00 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -36,7 +36,7 @@ jobs: steps: - name: "Check all dependent jobs" run: | - echo '${{ toJson(needs) }}' | jq -n 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' + echo '${{ toJson(needs) }}' | jq 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' build-test-vllm: runs-on: gpu-l40-amd64 From faf227f19fb719d87fb48ae168ff092469de175f Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:36:28 -0700 Subject: [PATCH 13/31] test2 Signed-off-by: Anant Sharma --- .github/filters.yaml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index 38067d30f1..6e817555e5 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -1,17 +1,9 @@ docs: - - "docs/**" - - "**/*.md" - - "**/*.rst" -ci: - - ".github/**" - - ".devcontainer/**" - - "container/**" + - 'docs/**' + - '!**/*.md' + - '!**/*.rst' + - '!**/*.yml' code: - - "benchmarks/**" - - "components/**" - - "deploy/**" - - "examples/**" - - "launch/**" - - "lib/**" - - "recipes/**" - - "tests/**" \ No newline at end of file + - '!**/*.md' + - '!**/*.rst' + - '!**/*.yml' \ No newline at end of file From 754e3cad1f289e88db69cda7d744791630dd1d68 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:45:36 -0700 Subject: [PATCH 14/31] test Signed-off-by: Anant Sharma --- .github/filters.yaml | 36 ++++++++++++++----- .../container-validation-backends.yml | 4 +-- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index 6e817555e5..132d478a2c 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -1,9 +1,29 @@ -docs: +docs: &docs - 'docs/**' - - '!**/*.md' - - '!**/*.rst' - - '!**/*.yml' -code: - - '!**/*.md' - - '!**/*.rst' - - '!**/*.yml' \ No newline at end of file + - '.github/**' + - '**/*.md' + - '**/*.rst' + - '**/*.yml' +vllm: &vllm + - 'container/Dockerfile.vllm' + - 'container/deps/requirements.vllm.txt' + - 'container/deps/vllm/**' + - 'components/backends/vllm/**' + - 'tests/serve/test_vllm.py' +sglang: &sglang + - 'container/Dockerfile.sglang' + - 'container/Dockerfile.sglang-deepep' + - 'components/backends/sglang/**' + - 'container/build.sh' + - 'tests/serve/test_sglang.py' +trtllm: &trtllm + - 'container/Dockerfile.trtllm' + - 'components/backends/trtllm/**' + - 'container/build.sh' + - 'container/build_trtllm_wheel.sh' + - 'container/deps/**' + - 'tests/serve/test_trtllm.py' +backends: + - *vllm + - *sglang + - *trtllm \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index e0f32c0d00..a50786cd54 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -41,7 +41,7 @@ jobs: build-test-vllm: runs-on: gpu-l40-amd64 needs: changes - if: needs.changes.outputs.code == 'true' + if: needs.changes.outputs.docs == 'false' steps: - name: Checkout code uses: actions/checkout@v4 @@ -66,7 +66,7 @@ jobs: build-test-sglang: runs-on: gpu-l40-amd64 needs: changes - if: needs.changes.outputs.code == 'true' + if: needs.changes.outputs.docs == 'false' steps: - name: Checkout code uses: actions/checkout@v4 From 5b564805e6873b096c9e3a74662d00185852b775 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 07:49:18 -0700 Subject: [PATCH 15/31] add trtllm Signed-off-by: Anant Sharma --- .../container-validation-backends.yml | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index a50786cd54..2d4f711c3b 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -17,9 +17,6 @@ concurrency: jobs: changes: runs-on: ubuntu-latest - outputs: - docs: ${{ steps.filter.outputs.docs }} - code: ${{ steps.filter.outputs.code }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -31,7 +28,7 @@ jobs: pr-backend-check: runs-on: ubuntu-latest - needs: [build-test-vllm, build-test-sglang] + needs: [build-test-vllm, build-test-sglang, build-test-trtllm] if: always() steps: - name: "Check all dependent jobs" @@ -86,4 +83,29 @@ jobs: uses: ./.github/actions/pytest-composite-action with: image_tag: ${{ steps.build-image.outputs.image_tag }} - pytest_marks: "e2e and sglang and gpu_1 and not slow" \ No newline at end of file + pytest_marks: "e2e and sglang and gpu_1 and not slow" + + build-test-trtllm: + runs-on: gpu-l40-amd64 + needs: changes + if: needs.changes.outputs.docs == 'false' + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build Container + id: build-image + uses: ./.github/actions/docker-build-composite-action + with: + framework: trtllm + target: runtime + ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} + ci_token: ${{ secrets.CI_TOKEN }} + aws_default_region: ${{ secrets.AWS_DEFAULT_REGION }} + sccache_s3_bucket: ${{ secrets.SCCACHE_S3_BUCKET }} + aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + - name: Run tests + uses: ./.github/actions/pytest-composite-action + with: + image_tag: ${{ steps.build-image.outputs.image_tag }} + pytest_marks: "e2e and trtllm and gpu_1 and not slow" \ No newline at end of file From c40ffb68bb3ddea9877af039020b6aba0fb87c8b Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 08:02:11 -0700 Subject: [PATCH 16/31] cleanup --- .github/filters.yaml | 5 ++-- .../container-validation-backends.yml | 9 ++++---- .github/workflows/trigger_ci.yml | 23 +------------------ 3 files changed, 8 insertions(+), 29 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index 132d478a2c..b2960e2be7 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -1,6 +1,5 @@ docs: &docs - 'docs/**' - - '.github/**' - '**/*.md' - '**/*.rst' - '**/*.yml' @@ -26,4 +25,6 @@ trtllm: &trtllm backends: - *vllm - *sglang - - *trtllm \ No newline at end of file + - *trtllm +sdk: + - 'deploy/**' \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 2d4f711c3b..c6357df0c4 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -7,7 +7,6 @@ on: push: branches: - main - - "anants/*" - "pull-request/[0-9]+" concurrency: @@ -26,7 +25,7 @@ jobs: with: filters: .github/filters.yaml - pr-backend-check: + backend-checks: runs-on: ubuntu-latest needs: [build-test-vllm, build-test-sglang, build-test-trtllm] if: always() @@ -65,7 +64,7 @@ jobs: needs: changes if: needs.changes.outputs.docs == 'false' steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - name: Build Container id: build-image @@ -96,7 +95,7 @@ jobs: id: build-image uses: ./.github/actions/docker-build-composite-action with: - framework: trtllm + framework: sglang target: runtime ngc_ci_access_token: ${{ secrets.NGC_CI_ACCESS_TOKEN }} ci_token: ${{ secrets.CI_TOKEN }} @@ -108,4 +107,4 @@ jobs: uses: ./.github/actions/pytest-composite-action with: image_tag: ${{ steps.build-image.outputs.image_tag }} - pytest_marks: "e2e and trtllm and gpu_1 and not slow" \ No newline at end of file + pytest_marks: "e2e and sglang and gpu_1 and not slow" \ No newline at end of file diff --git a/.github/workflows/trigger_ci.yml b/.github/workflows/trigger_ci.yml index d4b1145a00..8df9298263 100644 --- a/.github/workflows/trigger_ci.yml +++ b/.github/workflows/trigger_ci.yml @@ -51,28 +51,7 @@ jobs: id: src_changes uses: dorny/paths-filter@v3 with: - filters: | - vllm: - - 'container/Dockerfile.vllm' - - 'container/deps/requirements.vllm.txt' - - 'container/deps/vllm/**' - - 'components/backends/vllm/**' - - 'tests/serve/test_vllm.py' - trtllm: - - 'container/Dockerfile.trtllm' - - 'components/backends/trtllm/**' - - 'container/build.sh' - - 'container/build_trtllm_wheel.sh' - - 'container/deps/**' - - 'tests/serve/test_trtllm.py' - sdk: - - 'deploy/**' - sglang: - - 'container/Dockerfile.sglang' - - 'container/Dockerfile.sglang-deepep' - - 'components/backends/sglang/**' - - 'container/build.sh' - - 'tests/serve/test_sglang.py' + filters: .github/filters.yaml - name: Check if Validation Workflow has run id: check_workflow uses: actions/github-script@v6 From 77ffaaa169a3ab5ae089988c8787f6f3fcffa071 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 08:07:28 -0700 Subject: [PATCH 17/31] fixes Signed-off-by: Anant Sharma --- .github/actions/docker-build-composite-action/action.yml | 2 +- .github/actions/pytest-composite-action/action.yml | 1 + .github/filters.yaml | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/docker-build-composite-action/action.yml b/.github/actions/docker-build-composite-action/action.yml index 8e7d101bec..b92ab7234a 100644 --- a/.github/actions/docker-build-composite-action/action.yml +++ b/.github/actions/docker-build-composite-action/action.yml @@ -26,7 +26,7 @@ inputs: required: false aws_secret_access_key: description: 'AWS Secret Access Key' - required: false + required: false outputs: image_tag: diff --git a/.github/actions/pytest-composite-action/action.yml b/.github/actions/pytest-composite-action/action.yml index ee2b1f2c12..43f0750a04 100644 --- a/.github/actions/pytest-composite-action/action.yml +++ b/.github/actions/pytest-composite-action/action.yml @@ -18,6 +18,7 @@ runs: env: CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} PYTEST_XML_FILE: pytest_test_report.xml + HF_HOME: /runner/_work/_temp run: | docker run --runtime=nvidia --rm --gpus all -w /workspace \ --network host \ diff --git a/.github/filters.yaml b/.github/filters.yaml index b2960e2be7..4cb2229c3d 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -2,7 +2,6 @@ docs: &docs - 'docs/**' - '**/*.md' - '**/*.rst' - - '**/*.yml' vllm: &vllm - 'container/Dockerfile.vllm' - 'container/deps/requirements.vllm.txt' @@ -27,4 +26,4 @@ backends: - *sglang - *trtllm sdk: - - 'deploy/**' \ No newline at end of file + - 'deploy/**' \ No newline at end of file From 983bf59f8de5e436ee4281ef97ad16dfd3d1f5a6 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 08:08:56 -0700 Subject: [PATCH 18/31] fix output Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 55ec2c9de1..a4095e38df 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -16,6 +16,8 @@ concurrency: jobs: changes: runs-on: ubuntu-latest + outputs: + docs: ${{ steps.filter.outputs.docs }} steps: - name: Checkout code uses: actions/checkout@v4 From 882cbc2b75a895033af9511b290b0b4daa44dee0 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 08:30:54 -0700 Subject: [PATCH 19/31] naming Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index a4095e38df..7dd0f56ce2 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -29,14 +29,14 @@ jobs: backend-checks: runs-on: ubuntu-latest - needs: [build-test-vllm, build-test-sglang, build-test-trtllm] + needs: [vllm, sglang, trtllm] if: always() steps: - name: "Check all dependent jobs" run: | echo '${{ toJson(needs) }}' | jq 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' - build-test-vllm: + vllm: runs-on: gpu-l40-amd64 needs: changes if: needs.changes.outputs.docs == 'false' @@ -61,7 +61,7 @@ jobs: image_tag: ${{ steps.build-image.outputs.image_tag }} pytest_marks: "e2e and vllm and gpu_1 and not slow" - build-test-sglang: + sglang: runs-on: gpu-l40-amd64 needs: changes if: needs.changes.outputs.docs == 'false' @@ -86,7 +86,7 @@ jobs: image_tag: ${{ steps.build-image.outputs.image_tag }} pytest_marks: "e2e and sglang and gpu_1" - build-test-trtllm: + trtllm: runs-on: gpu-l40-amd64 needs: changes if: needs.changes.outputs.docs == 'false' From 3f59c1678afa3435cfc2a34d78ef8f137da2ae88 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 08:58:10 -0700 Subject: [PATCH 20/31] updates Signed-off-by: Anant Sharma --- .../workflows/container-validation-backends.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 377116f703..b2bdcc14ee 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: - changes: + changed-files: runs-on: ubuntu-latest outputs: docs: ${{ steps.filter.outputs.docs }} @@ -27,7 +27,7 @@ jobs: with: filters: .github/filters.yaml - backend-checks: + backend-status-check: runs-on: ubuntu-latest needs: [vllm, sglang, trtllm] if: always() @@ -38,8 +38,8 @@ jobs: vllm: runs-on: gpu-l40-amd64 - needs: changes - if: needs.changes.outputs.docs == 'false' + needs: changed-files + if: needs.changed-files.outputs.docs == 'false' steps: - name: Checkout code uses: actions/checkout@v4 @@ -63,8 +63,8 @@ jobs: sglang: runs-on: gpu-l40-amd64 - needs: changes - if: needs.changes.outputs.docs == 'false' + needs: changed-files + if: needs.changed-files.outputs.docs == 'false' steps: - name: Checkout repository uses: actions/checkout@v4 @@ -88,8 +88,8 @@ jobs: trtllm: runs-on: gpu-l40-amd64 - needs: changes - if: needs.changes.outputs.docs == 'false' + needs: changed-files + if: needs.changed-files.outputs.docs == 'false' steps: - name: Checkout code uses: actions/checkout@v4 From 2fe00ac0deb7faeb8e9ab0b6fdd8500f756b2077 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Fri, 19 Sep 2025 09:19:59 -0700 Subject: [PATCH 21/31] exit errort Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index b2bdcc14ee..733e1c6ee3 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -34,7 +34,7 @@ jobs: steps: - name: "Check all dependent jobs" run: | - echo '${{ toJson(needs) }}' | jq 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' + echo '${{ toJson(needs) }}' | jq -e 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))' vllm: runs-on: gpu-l40-amd64 From 1a3bbbe9b8dc16534d212c1e84fe2f69904461e3 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 07:00:35 -0700 Subject: [PATCH 22/31] add more files Signed-off-by: Anant Sharma --- .github/filters.yaml | 36 +++++++++++++++++-- .../container-validation-backends.yml | 10 +++--- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index 4cb2229c3d..eb80d13e1d 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -2,18 +2,46 @@ docs: &docs - 'docs/**' - '**/*.md' - '**/*.rst' + +project_meta: &project_meta + - 'ATTRIBUTIONS*.md' + - 'ATTRIBUTIONS*.txt' + - '**/ATTRIBUTIONS*' + - '.gitignore' + - '.gitattributes' + - 'CODEOWNERS' + - 'CONTRIBUTING.md' + - 'CODE_OF_CONDUCT.md' + - 'SECURITY.md' + +config_files: &config_files + - '**/*.code-workspace' + - '**/.devcontainer/**' + - '**/.cargo/**' + - '.coderabbit.yaml' + - '.clang-format' + - '.lycheeignore' + - 'codespell.txt' + +skip_ci: + - *docs + - *project_meta + - *config_files + vllm: &vllm - 'container/Dockerfile.vllm' - 'container/deps/requirements.vllm.txt' - 'container/deps/vllm/**' - 'components/backends/vllm/**' - 'tests/serve/test_vllm.py' + sglang: &sglang - 'container/Dockerfile.sglang' - 'container/Dockerfile.sglang-deepep' - 'components/backends/sglang/**' - 'container/build.sh' - 'tests/serve/test_sglang.py' + trtllm: &trtllm - 'container/Dockerfile.trtllm' - 'components/backends/trtllm/**' @@ -21,9 +49,11 @@ trtllm: &trtllm - 'container/build_trtllm_wheel.sh' - 'container/deps/**' - 'tests/serve/test_trtllm.py' + +sdk: + - 'deploy/**' + backends: - *vllm - *sglang - - *trtllm -sdk: - - 'deploy/**' \ No newline at end of file + - *trtllm \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 733e1c6ee3..09fafa6d55 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -name: Dynamo Backend Validation +name: Docker Build and Test on: push: @@ -17,7 +17,7 @@ jobs: changed-files: runs-on: ubuntu-latest outputs: - docs: ${{ steps.filter.outputs.docs }} + docs: ${{ steps.filter.outputs.skip_ci }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -39,7 +39,7 @@ jobs: vllm: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.docs == 'false' + if: needs.changed-files.outputs.skip_ci == 'false' steps: - name: Checkout code uses: actions/checkout@v4 @@ -64,7 +64,7 @@ jobs: sglang: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.docs == 'false' + if: needs.changed-files.outputs.skip_ci == 'false' steps: - name: Checkout repository uses: actions/checkout@v4 @@ -89,7 +89,7 @@ jobs: trtllm: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.docs == 'false' + if: needs.changed-files.outputs.skip_ci == 'false' steps: - name: Checkout code uses: actions/checkout@v4 From 6dd5e18a1d8fdb10c2b113f8af7a69c38222a181 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 07:15:16 -0700 Subject: [PATCH 23/31] fix Signed-off-by: Anant Sharma --- .github/workflows/container-validation-backends.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 09fafa6d55..da2083b1a4 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -17,7 +17,7 @@ jobs: changed-files: runs-on: ubuntu-latest outputs: - docs: ${{ steps.filter.outputs.skip_ci }} + skip_ci: ${{ steps.filter.outputs.skip_ci }} steps: - name: Checkout code uses: actions/checkout@v4 From 4b0b3af90b4bf40124e91dee52c00ba54a8ec484 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 07:56:51 -0700 Subject: [PATCH 24/31] temp test Signed-off-by: Anant Sharma --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bca0086e21..cad0edcf5d 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ limitations under the License. --> ![Dynamo banner](./docs/images/frontpage-banner.png) + [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GitHub Release](https://img.shields.io/github/v/release/ai-dynamo/dynamo)](https://github.com/ai-dynamo/dynamo/releases/latest) [![Discord](https://dcbadge.limes.pink/api/server/D92uqZRjCZ?style=flat)](https://discord.gg/D92uqZRjCZ) From 3c29048be52e4d25e0a993732ffd2b58321f769a Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 08:06:15 -0700 Subject: [PATCH 25/31] update rules Signed-off-by: Anant Sharma --- .github/filters.yaml | 49 +++++++------------ .../container-validation-backends.yml | 8 +-- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index eb80d13e1d..5fd7282904 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -3,30 +3,24 @@ docs: &docs - '**/*.md' - '**/*.rst' -project_meta: &project_meta - - 'ATTRIBUTIONS*.md' - - 'ATTRIBUTIONS*.txt' - - '**/ATTRIBUTIONS*' - - '.gitignore' - - '.gitattributes' - - 'CODEOWNERS' - - 'CONTRIBUTING.md' - - 'CODE_OF_CONDUCT.md' - - 'SECURITY.md' - -config_files: &config_files - - '**/*.code-workspace' - - '**/.devcontainer/**' - - '**/.cargo/**' - - '.coderabbit.yaml' - - '.clang-format' - - '.lycheeignore' - - 'codespell.txt' - -skip_ci: - - *docs - - *project_meta - - *config_files +ci_files: &ci_files + - '.github/**' + +has_code_changes: + - *ci_files + - 'benchmarks/**' + - 'components/**' + - 'container/**' + - 'deploy/**' + - 'examples/**' + - 'launch/**' + - 'lib/**' + - 'recipes/**' + - 'tests/**' + - '*.toml' + - '*.lock' + - '*.py' + - '*.rs' vllm: &vllm - 'container/Dockerfile.vllm' @@ -51,9 +45,4 @@ trtllm: &trtllm - 'tests/serve/test_trtllm.py' sdk: - - 'deploy/**' - -backends: - - *vllm - - *sglang - - *trtllm \ No newline at end of file + - 'deploy/**' \ No newline at end of file diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index da2083b1a4..7faf716dd5 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -17,7 +17,7 @@ jobs: changed-files: runs-on: ubuntu-latest outputs: - skip_ci: ${{ steps.filter.outputs.skip_ci }} + has_code_changes: ${{ steps.filter.outputs.has_code_changes }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -39,7 +39,7 @@ jobs: vllm: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.skip_ci == 'false' + if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout code uses: actions/checkout@v4 @@ -64,7 +64,7 @@ jobs: sglang: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.skip_ci == 'false' + if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout repository uses: actions/checkout@v4 @@ -89,7 +89,7 @@ jobs: trtllm: runs-on: gpu-l40-amd64 needs: changed-files - if: needs.changed-files.outputs.skip_ci == 'false' + if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout code uses: actions/checkout@v4 From 69bd84be1d53e6d206b55509a77286360aca59b0 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 08:08:00 -0700 Subject: [PATCH 26/31] Revert "temp test" This reverts commit 4b0b3af90b4bf40124e91dee52c00ba54a8ec484. Signed-off-by: Anant Sharma --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cad0edcf5d..bca0086e21 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ limitations under the License. --> ![Dynamo banner](./docs/images/frontpage-banner.png) - [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GitHub Release](https://img.shields.io/github/v/release/ai-dynamo/dynamo)](https://github.com/ai-dynamo/dynamo/releases/latest) [![Discord](https://dcbadge.limes.pink/api/server/D92uqZRjCZ?style=flat)](https://discord.gg/D92uqZRjCZ) From 0125b1d941faf1597045a7599629d7f0c645c290 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 08:08:54 -0700 Subject: [PATCH 27/31] minor Signed-off-by: Anant Sharma --- .github/filters.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index 5fd7282904..c1fead54c4 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -3,11 +3,11 @@ docs: &docs - '**/*.md' - '**/*.rst' -ci_files: &ci_files +ci: &ci - '.github/**' has_code_changes: - - *ci_files + - *ci - 'benchmarks/**' - 'components/**' - 'container/**' From d024fccafd63e9bb9093c98fd0ad09d0866c35da Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Mon, 22 Sep 2025 08:36:39 -0700 Subject: [PATCH 28/31] use image tag as input Signed-off-by: Anant Sharma --- .../docker-build-composite-action/action.yml | 18 +++++++++++++++--- .../actions/pytest-composite-action/action.yml | 4 ++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/actions/docker-build-composite-action/action.yml b/.github/actions/docker-build-composite-action/action.yml index b92ab7234a..f4151f1ee5 100644 --- a/.github/actions/docker-build-composite-action/action.yml +++ b/.github/actions/docker-build-composite-action/action.yml @@ -1,4 +1,4 @@ -name: 'Dynamo Container Build' +name: 'Docker Build' description: 'Build Dynamo container images' inputs: framework: @@ -9,6 +9,9 @@ inputs: description: 'Target to build' required: false default: 'runtime' + image_tag: + description: 'Custom image tag (optional, defaults to framework:latest)' + required: false ngc_ci_access_token: description: 'NGC CI Access Token' required: false @@ -31,7 +34,7 @@ inputs: outputs: image_tag: description: 'Image Tag' - value: ${{ inputs.framework }}:latest + value: ${{ steps.build.outputs.image_tag }} runs: using: "composite" @@ -49,6 +52,7 @@ runs: run: | docker system prune -af - name: Build image + id: build shell: bash env: GITHUB_TOKEN: ${{ inputs.ci_token }} @@ -57,7 +61,15 @@ runs: AWS_ACCESS_KEY_ID: ${{ inputs.aws_access_key_id }} AWS_SECRET_ACCESS_KEY: ${{ inputs.aws_secret_access_key }} run: | - ./container/build.sh --tag ${{ inputs.framework }}:latest \ + # Determine image tag + if [ -n "${{ inputs.image_tag }}" ]; then + IMAGE_TAG="${{ inputs.image_tag }}" + else + IMAGE_TAG="${{ inputs.framework }}:latest" + fi + echo "image_tag=$IMAGE_TAG" >> $GITHUB_OUTPUT + + ./container/build.sh --tag "$IMAGE_TAG" \ --target ${{ inputs.target }} \ --framework ${{ inputs.framework }} \ --use-sccache \ diff --git a/.github/actions/pytest-composite-action/action.yml b/.github/actions/pytest-composite-action/action.yml index 43f0750a04..0b7cba5426 100644 --- a/.github/actions/pytest-composite-action/action.yml +++ b/.github/actions/pytest-composite-action/action.yml @@ -1,5 +1,5 @@ -name: 'Dynamo Tests' -description: 'Run tests on Dynamo container images' +name: 'Pytest' +description: 'Run pytest on pre-built container images' inputs: pytest_marks: description: 'Pytest marks' From 2b2e78808a2c77f33badd0bc9ab372bb1b7af214 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Tue, 23 Sep 2025 06:50:25 -0700 Subject: [PATCH 29/31] update filter Signed-off-by: Anant Sharma --- .github/filters.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/filters.yaml b/.github/filters.yaml index c1fead54c4..5375023255 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -4,7 +4,9 @@ docs: &docs - '**/*.rst' ci: &ci - - '.github/**' + - '.github/workflows/**' + - '.github/filters.yaml' + - '.github/actions/**' has_code_changes: - *ci From 622a235b080926d6f5ea8f9b9d431eeff78c4a03 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Tue, 23 Sep 2025 09:53:40 -0700 Subject: [PATCH 30/31] ai fixes Signed-off-by: Anant Sharma --- .github/actions/pytest-composite-action/action.yml | 2 +- .github/filters.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/pytest-composite-action/action.yml b/.github/actions/pytest-composite-action/action.yml index 0b7cba5426..475b430e6e 100644 --- a/.github/actions/pytest-composite-action/action.yml +++ b/.github/actions/pytest-composite-action/action.yml @@ -16,7 +16,7 @@ runs: - name: Run tests shell: bash env: - CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }}_${{ inputs.framework }} + CONTAINER_ID: test_${{ github.run_id }}_${{ github.run_attempt }}_${{ github.job }} PYTEST_XML_FILE: pytest_test_report.xml HF_HOME: /runner/_work/_temp run: | diff --git a/.github/filters.yaml b/.github/filters.yaml index 5375023255..0ec167bfac 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -33,7 +33,7 @@ vllm: &vllm sglang: &sglang - 'container/Dockerfile.sglang' - - 'container/Dockerfile.sglang-deepep' + - 'container/Dockerfile.sglang-wideep' - 'components/backends/sglang/**' - 'container/build.sh' - 'tests/serve/test_sglang.py' From 528d192be09a9265606b78af94fc4912bfe84273 Mon Sep 17 00:00:00 2001 From: Anant Sharma Date: Tue, 23 Sep 2025 12:42:37 -0700 Subject: [PATCH 31/31] review comments Signed-off-by: Anant Sharma --- .../action.yml | 2 +- .../action.yml | 2 +- .github/filters.yaml | 2 +- .../container-validation-backends.yml | 24 +++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) rename .github/actions/{docker-build-composite-action => docker-build}/action.yml (97%) rename .github/actions/{pytest-composite-action => pytest}/action.yml (93%) diff --git a/.github/actions/docker-build-composite-action/action.yml b/.github/actions/docker-build/action.yml similarity index 97% rename from .github/actions/docker-build-composite-action/action.yml rename to .github/actions/docker-build/action.yml index f4151f1ee5..6916b80cc0 100644 --- a/.github/actions/docker-build-composite-action/action.yml +++ b/.github/actions/docker-build/action.yml @@ -74,4 +74,4 @@ runs: --framework ${{ inputs.framework }} \ --use-sccache \ --sccache-bucket "$SCCACHE_S3_BUCKET" \ - --sccache-region "$AWS_DEFAULT_REGION" \ No newline at end of file + --sccache-region "$AWS_DEFAULT_REGION" diff --git a/.github/actions/pytest-composite-action/action.yml b/.github/actions/pytest/action.yml similarity index 93% rename from .github/actions/pytest-composite-action/action.yml rename to .github/actions/pytest/action.yml index 475b430e6e..9ffe797d30 100644 --- a/.github/actions/pytest-composite-action/action.yml +++ b/.github/actions/pytest/action.yml @@ -24,4 +24,4 @@ runs: --network host \ --name ${{ env.CONTAINER_ID }}_pytest \ ${{ inputs.image_tag }} \ - bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ inputs.pytest_marks }}\"" \ No newline at end of file + bash -c "pytest -xsv --basetemp=/tmp --junitxml=${{ env.PYTEST_XML_FILE }} -m \"${{ inputs.pytest_marks }}\"" diff --git a/.github/filters.yaml b/.github/filters.yaml index 0ec167bfac..191d71f63b 100644 --- a/.github/filters.yaml +++ b/.github/filters.yaml @@ -47,4 +47,4 @@ trtllm: &trtllm - 'tests/serve/test_trtllm.py' sdk: - - 'deploy/**' \ No newline at end of file + - 'deploy/**' diff --git a/.github/workflows/container-validation-backends.yml b/.github/workflows/container-validation-backends.yml index 7faf716dd5..10b9d220e7 100644 --- a/.github/workflows/container-validation-backends.yml +++ b/.github/workflows/container-validation-backends.yml @@ -20,9 +20,9 @@ jobs: has_code_changes: ${{ steps.filter.outputs.has_code_changes }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - name: Check for changes - uses: dorny/paths-filter@v3 + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: filters: .github/filters.yaml @@ -42,10 +42,10 @@ jobs: if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - name: Build Container id: build-image - uses: ./.github/actions/docker-build-composite-action + uses: ./.github/actions/docker-build with: framework: vllm target: runtime @@ -56,7 +56,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Run tests - uses: ./.github/actions/pytest-composite-action + uses: ./.github/actions/pytest with: image_tag: ${{ steps.build-image.outputs.image_tag }} pytest_marks: "e2e and vllm and gpu_1 and not slow" @@ -67,10 +67,10 @@ jobs: if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - name: Build Container id: build-image - uses: ./.github/actions/docker-build-composite-action + uses: ./.github/actions/docker-build with: framework: sglang target: runtime @@ -81,7 +81,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Run tests - uses: ./.github/actions/pytest-composite-action + uses: ./.github/actions/pytest with: image_tag: ${{ steps.build-image.outputs.image_tag }} pytest_marks: "e2e and sglang and gpu_1" @@ -92,10 +92,10 @@ jobs: if: needs.changed-files.outputs.has_code_changes == 'true' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - name: Build Container id: build-image - uses: ./.github/actions/docker-build-composite-action + uses: ./.github/actions/docker-build with: framework: trtllm target: runtime @@ -106,7 +106,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Run tests - uses: ./.github/actions/pytest-composite-action + uses: ./.github/actions/pytest with: image_tag: ${{ steps.build-image.outputs.image_tag }} - pytest_marks: "e2e and trtllm_marker and gpu_1 and not slow" \ No newline at end of file + pytest_marks: "e2e and trtllm_marker and gpu_1 and not slow"