Unverified Commit d4fbf9d3 authored by Tushar Sharma's avatar Tushar Sharma Committed by GitHub
Browse files

ci: add filters for frontend image workflow (#5585)


Signed-off-by: default avatarTushar Sharma <tusharma@nvidia.com>
parent 912a4d4b
......@@ -25,6 +25,9 @@ outputs:
trtllm:
description: 'Whether trtllm files changed'
value: ${{ steps.filter.outputs.trtllm_any_modified }}
frontend:
description: 'Whether frontend files changed'
value: ${{ steps.filter.outputs.frontend_any_modified }}
runs:
using: "composite"
......@@ -78,6 +81,7 @@ runs:
echo "vllm: ${{ steps.filter.outputs.vllm_any_modified }}"
echo "sglang: ${{ steps.filter.outputs.sglang_any_modified }}"
echo "trtllm: ${{ steps.filter.outputs.trtllm_any_modified }}"
echo "frontend: ${{ steps.filter.outputs.frontend_any_modified }}"
echo ""
echo "=== Files Matching Each Filter ==="
echo "docs: ${{ steps.filter.outputs.docs_all_modified_files }}"
......@@ -89,12 +93,13 @@ runs:
echo "vllm: ${{ steps.filter.outputs.vllm_all_modified_files }}"
echo "sglang: ${{ steps.filter.outputs.sglang_all_modified_files }}"
echo "trtllm: ${{ steps.filter.outputs.trtllm_all_modified_files }}"
echo "frontend: ${{ steps.filter.outputs.frontend_all_modified_files }}"
- name: Check for uncovered files
shell: bash
run: |
# Combine all filter-specific files into one list
COVERED_FILES=$(echo "${{ steps.filter.outputs.docs_all_modified_files }} ${{ steps.filter.outputs.examples_all_modified_files }} ${{ steps.filter.outputs.ignore_all_modified_files }} ${{ steps.filter.outputs.ci_all_modified_files }} ${{ steps.filter.outputs.core_all_modified_files }} ${{ steps.filter.outputs.operator_all_modified_files }} ${{ steps.filter.outputs.deploy_all_modified_files }} ${{ steps.filter.outputs.planner_all_modified_files }} ${{ steps.filter.outputs.vllm_all_modified_files }} ${{ steps.filter.outputs.sglang_all_modified_files }} ${{ steps.filter.outputs.trtllm_all_modified_files }}" | tr ' ' '\n' | grep -v '^$' | sort -u)
COVERED_FILES=$(echo "${{ steps.filter.outputs.docs_all_modified_files }} ${{ steps.filter.outputs.examples_all_modified_files }} ${{ steps.filter.outputs.ignore_all_modified_files }} ${{ steps.filter.outputs.ci_all_modified_files }} ${{ steps.filter.outputs.core_all_modified_files }} ${{ steps.filter.outputs.operator_all_modified_files }} ${{ steps.filter.outputs.deploy_all_modified_files }} ${{ steps.filter.outputs.planner_all_modified_files }} ${{ steps.filter.outputs.vllm_all_modified_files }} ${{ steps.filter.outputs.sglang_all_modified_files }} ${{ steps.filter.outputs.trtllm_all_modified_files }} ${{ steps.filter.outputs.frontend_all_modified_files }}" | tr ' ' '\n' | grep -v '^$' | sort -u)
# Get all modified files
ALL_FILES=$(echo "${{ steps.filter.outputs.all_all_modified_files }}" | tr ' ' '\n' | grep -v '^$' | sort -u)
......
......@@ -7,6 +7,7 @@
# vllm -> vllm build and test
# sglang -> sglang build and test
# trtllm -> trtllm build and test
# frontend -> frontend EPP image build
#
# Filters for coverage only (no CI triggered):
# docs, examples, ignore, planner
......@@ -119,3 +120,18 @@ trtllm:
- 'examples/backends/trtllm/**'
- 'components/src/dynamo/trtllm/**'
- 'container/build_trtllm_wheel.sh'
frontend:
- *ci
- '.cargo/config.toml'
- 'lib/**'
- '*.toml'
- '*.lock'
- 'container/build.sh'
- 'container/Dockerfile'
- 'container/deps/*'
- 'components/src/dynamo/router/**'
- 'components/src/dynamo/mocker/**'
- 'components/src/dynamo/frontend/**'
- 'components/src/dynamo/common/**'
- 'deploy/inference-gateway/**'
......@@ -35,8 +35,25 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
changed-files:
runs-on: ubuntu-latest
outputs:
frontend: ${{ steps.changes.outputs.frontend }}
steps:
- name: Checkout code
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
fetch-depth: 0
- name: Check for changes
id: changes
uses: ./.github/actions/changed-files
with:
gh_token: ${{ github.token }}
build-frontend-image:
name: Build Frontend Image (${{ matrix.platform.arch }})
needs: changed-files
if: needs.changed-files.outputs.frontend == 'true'
strategy:
fail-fast: false
matrix:
......@@ -102,3 +119,12 @@ jobs:
azure_acr_hostname: ${{ secrets.AZURE_ACR_HOSTNAME }}
azure_acr_user: ${{ secrets.AZURE_ACR_USER }}
azure_acr_password: ${{ secrets.AZURE_ACR_PASSWORD }}
frontend-status-check:
runs-on: ubuntu-latest
needs: [changed-files, build-frontend-image]
if: always()
steps:
- name: "Check all dependent jobs"
run: |
echo '${{ toJson(needs) }}' | jq -e 'to_entries | map(.value.result) | all(. as $result | ["success", "skipped"] | any($result == .))'
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment