Skip to content

feat(onnx-binding): add ONNX Runtime binding with ROCm/GPU support fo… #2349

feat(onnx-binding): add ONNX Runtime binding with ROCm/GPU support fo…

feat(onnx-binding): add ONNX Runtime binding with ROCm/GPU support fo… #2349

name: Integration Test [Helm]
on:
push:
branches:
- main
paths-ignore:
- 'website/**'
- '**/*.md'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- main
paths-ignore:
- 'website/**'
- '**/*.md'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
HELM_VERSION: v3.14.0
KIND_VERSION: v0.22.0
KUBECTL_VERSION: v1.29.0
CHART_PATH: deploy/helm/semantic-router
jobs:
# Lint and validate Helm chart
lint-chart:
name: Lint Helm Chart
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: ${{ env.HELM_VERSION }}
- name: Build Helm dependencies
run: |
echo "::group::Helm Dependency Build"
helm dependency build ${{ env.CHART_PATH }}
echo "::endgroup::"
- name: Run Helm lint
run: |
echo "::group::Helm Lint"
helm lint ${{ env.CHART_PATH }}
echo "::endgroup::"
# Template validation
template-chart:
name: Validate Helm Templates
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: ${{ env.HELM_VERSION }}
- name: Build Helm dependencies
run: |
echo "::group::Helm Dependency Build"
helm dependency build ${{ env.CHART_PATH }}
echo "::endgroup::"
- name: Template with default values
run: |
echo "::group::Template with Default Values"
helm template test-release ${{ env.CHART_PATH }} \
--namespace test-namespace > /tmp/default-template.yaml
echo "Templates generated successfully"
echo "::endgroup::"
- name: Validate generated YAML
run: |
echo "::group::Validate YAML Syntax"
# Check if yamllint is available, install if needed
if ! command -v yamllint &> /dev/null; then
echo "Installing yamllint..."
pip install yamllint
fi
# Validate generated templates (ignore some Helm template warnings)
yamllint -d "{extends: default, rules: {line-length: {max: 120}, indentation: {spaces: 2}}}" \
/tmp/default-template.yaml || echo "Some yamllint warnings are expected for Helm templates"
echo "::endgroup::"
- name: Verify required resources
run: |
echo "::group::Verify Required Resources"
required_resources=(
"ServiceAccount"
"PersistentVolumeClaim"
"ConfigMap"
"Deployment"
"Service"
)
for resource in "${required_resources[@]}"; do
if grep -q "kind: $resource" /tmp/default-template.yaml; then
echo "✓ Found resource: $resource"
else
echo "✗ Missing resource: $resource"
exit 1
fi
done
echo "All required resources found"
echo "Note: Namespace is managed by Helm's --create-namespace flag"
echo "::endgroup::"
- name: Upload templates as artifacts
uses: actions/upload-artifact@v4
with:
name: helm-templates
path: /tmp/*-template.yaml
retention-days: 7
# all GHA Job success, print it.
ci-success:
name: CI Success
runs-on: ubuntu-latest
needs: [lint-chart, template-chart]
if: success()
steps:
- name: Success summary
run: |
echo "✓ Lint checks passed"
echo "✓ Template validation passed"