Skip to content

Doc: Cleanup developer-guide #1456

Doc: Cleanup developer-guide

Doc: Cleanup developer-guide #1456

Workflow file for this run

name: CI - PR Checks
on:
pull_request:
branches:
- main
- dev
jobs:
# Check if PR contains code changes (not just docs/metadata)
check-code-changes:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
has_code_changes: ${{ steps.filter.outputs.code }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Check for code changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
code:
- '!docs/**'
- '!README.md'
- '!CONTRIBUTING.md'
- '!LICENSE'
- '!OWNERS'
- '!PROJECT'
lint-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Sanity check repo contents
run: ls -la
- name: Extract Go version from go.mod
run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> $GITHUB_ENV
- name: Set up Go with cache
uses: actions/setup-go@v5
with:
go-version: "${{ env.GO_VERSION }}"
cache-dependency-path: ./go.sum
- name: Install dependencies
run: go mod download
- name: Install golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.8.0
args: ""
- name: Run make build
shell: bash
run: |
make build
- name: Run make test
shell: bash
run: |
make test
# E2E tests run in parallel with different configurations:
# - HPAScaleToZero feature gate settings (true/false)
# - GPU types (nvidia/amd) for limiter tests
# Skip e2e tests if PR only contains docs/metadata changes
e2e-tests:
runs-on: ubuntu-latest
needs: [lint-and-test, check-code-changes]
if: needs.check-code-changes.outputs.has_code_changes == 'true'
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
# NVIDIA-focused: H100, A100, AMD MI300X heterogeneous for limiter tests
- gpu_type: nvidia-mix
scale_to_zero: true
e2e_gpu_type: nvidia
# AMD-focused: MI300X, MI250, NVIDIA A100 heterogeneous for limiter tests
# - gpu_type: amd-mix
# scale_to_zero: false
# e2e_gpu_type: amd
name: e2e-tests (gpu=${{ matrix.gpu_type }}, scale-to-zero=${{ matrix.scale_to_zero }})
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Extract Go version from go.mod
run: sed -En 's/^go (.*)$/GO_VERSION=\1/p' go.mod >> $GITHUB_ENV
- name: Set up Go with cache
uses: actions/setup-go@v5
with:
go-version: "${{ env.GO_VERSION }}"
cache-dependency-path: ./go.sum
- name: Install dependencies
run: go mod download
- name: Install Kind
run: |
ARCH=$(uname -m)
case "$ARCH" in
x86_64) KIND_ARCH="amd64" ;;
aarch64) KIND_ARCH="arm64" ;;
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac
curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.25.0/kind-linux-${KIND_ARCH}"
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
kind version
- name: Run e2e tests
shell: bash
env:
ENABLE_SCALE_TO_ZERO: ${{ matrix.scale_to_zero }}
CLUSTER_GPU_TYPE: ${{ matrix.gpu_type }}
E2E_GPU_TYPE: ${{ matrix.e2e_gpu_type }}
MULTI_MODEL_TESTING: "false"
run: |
make test-e2e