From 99b0f685acff79442cf312e45868f95bd9e919a2 Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 20 Oct 2025 12:15:52 +0800 Subject: [PATCH 1/4] split examples test --- .github/workflows/examples.yml | 463 ++++++++++++++++++++++++--------- 1 file changed, 337 insertions(+), 126 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 076687639..14d4c68d5 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -9,7 +9,8 @@ on: workflow_dispatch: jobs: - examples: + calc-x: + name: Calc-X Examples with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] timeout-minutes: 120 strategy: @@ -35,21 +36,10 @@ jobs: - name: Upgrade dependencies (latest) run: uv lock --upgrade if: matrix.setup-script == 'latest' - - name: Sync dependencies (latest) + - name: Sync dependencies run: | - uv sync --frozen --no-default-groups --extra apo --extra verl \ - --group dev --group experiment --group trl --group agents --group torch-gpu-stable - if: matrix.setup-script == 'latest' - - name: Sync dependencies (stable) - run: | - uv sync --frozen --no-default-groups --extra apo --extra verl \ - --group dev --group experiment --group trl --group agents --group torch-gpu-stable - if: matrix.setup-script == 'stable' - - name: Sync dependencies (legacy) - run: | - uv sync --frozen --no-default-groups --extra apo --extra verl \ - --group dev --group experiment --group agents --group torch-gpu-legacy - if: matrix.setup-script == 'legacy' + uv sync --frozen --no-default-groups --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} - name: Freeze dependencies run: | set -ex @@ -59,7 +49,7 @@ jobs: - name: Upload dependencies artifact uses: actions/upload-artifact@v4 with: - name: dependencies-${{ matrix.python-version }}-${{ matrix.setup-script }} + name: dependencies-calc-x-${{ matrix.python-version }}-${{ matrix.setup-script }} path: requirements-freeze.txt compression-level: 0 @@ -70,20 +60,6 @@ jobs: AZURE_API_BASE: ${{ secrets.AZURE_API_BASE }} AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} - - name: Prepare Unsloth model - run: | - set -ex - cd examples/unsloth - rm -rf models - uv run hf download unsloth/Qwen3-4B-Instruct-2507 --local-dir models/version_0 - - - name: Prepare Spider dataset - run: | - set -ex - cd examples/spider - uv run gdown --fuzzy https://drive.google.com/file/d/1oi9J1jZP9TyM35L85CL3qeGWl2jqlnL6/view - unzip -q spider-data.zip -d data - rm spider-data.zip - name: Prepare Calc-X dataset run: | set -ex @@ -92,66 +68,6 @@ jobs: unzip calc-x-data.zip -d data rm calc-x-data.zip - # APO Examples test - - name: APO example (legacy) - run: | - set -ex - cd examples/apo - uv run legacy_apo_client.py & - sleep 3 # Wait for the client to be up - uv run legacy_apo_server.py - pkill -f legacy_apo_client.py && echo "SIGTERM sent to legacy_apo_client.py" || echo "No legacy_apo_client.py process found" - while pgrep -f legacy_apo_client.py; do - echo "Waiting for legacy_apo_client.py to finish..." - sleep 5 - done - echo "legacy_apo_client.py has finished." - sleep 10 - env: - OPENAI_API_BASE: http://localhost:12306/ - OPENAI_API_KEY: dummy - - name: APO example - run: | - set -ex - cd examples/apo - uv run apo_custom_algorithm_trainer.py | tee _ci_apo.log - # Check whether the log contains "Best prompt found:" - grep "Best prompt found:" _ci_apo.log - env: - # New versions follow OPENAI_BASE_URL instead of OPENAI_API_BASE - OPENAI_BASE_URL: http://localhost:12306/ - OPENAI_API_KEY: dummy - - name: APO example debug sanity check - run: | - set -ex - cd examples/apo - uv run apo_debug.py --mode runner - uv run apo_debug.py --mode hook - uv run apo_debug.py --mode trainer - env: - # New versions follow OPENAI_BASE_URL instead of OPENAI_API_BASE - OPENAI_BASE_URL: http://localhost:12306/ - OPENAI_API_KEY: dummy - - - name: APO built-in algorithm - run: | - set -ex - cd examples/apo - uv run room_selector_apo.py - env: - OPENAI_BASE_URL: http://localhost:12306/ - OPENAI_API_KEY: dummy - if: ${{ (success() || failure()) && matrix.setup-script != 'legacy' }} - - - name: Spider sanity check - run: | - set -ex - cd examples/spider - uv run sql_agent.py - env: - OPENAI_API_BASE: http://localhost:12306/ - OPENAI_API_KEY: dummy - if: success() || failure() - name: Calc-X MCP sanity check run: | set -ex @@ -173,21 +89,14 @@ jobs: # And it has to be run before Spider training. # The client side used to hang in many of my attempts. # Don't ask why. Don't touch this. - - name: Calc-X training v0.1 + - name: Calc-X training run: | set -ex source .venv/bin/activate cd examples/calc_x ../../scripts/restart_ray.sh sleep 5 - PYTHONUNBUFFERED=1 python legacy_calc_agent.py & - bash legacy_train.sh - pkill -f legacy_calc_agent.py && echo "SIGTERM sent to legacy_calc_agent.py" || echo "No legacy_calc_agent.py process found" - while pgrep -f legacy_calc_agent.py; do - echo "Waiting for legacy_calc_agent.py to finish..." - sleep 5 - done - echo "legacy_calc_agent.py has finished." + PYTHONUNBUFFERED=1 python train_calc_agent.py --val-file data/test_mini.parquet --ci sleep 10 shell: bash env: @@ -204,23 +113,7 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - - name: Calc-X training v0.2 - run: | - set -ex - source .venv/bin/activate - cd examples/calc_x - ../../scripts/restart_ray.sh - sleep 5 - PYTHONUNBUFFERED=1 python train_calc_agent.py --val-file data/test_mini.parquet --ci - sleep 10 - shell: bash - env: - WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} - WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - id: calc_x_train_v0_2 - if: success() || failure() - - - name: Calc-X training v0.2 LLM Proxy + - name: Calc-X training LLM Proxy run: | set -ex source .venv/bin/activate @@ -233,10 +126,10 @@ jobs: env: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - id: calc_x_train_v0_2_llm_proxy + id: calc_x_train_llm_proxy if: success() || failure() - - name: Calc-X training v0.2 External Store + - name: Calc-X training with external store run: | set -ex source .venv/bin/activate @@ -266,7 +159,77 @@ jobs: env: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - id: calc_x_train_v0_2_external_store + id: calc_x_train_external_store + if: success() || failure() + + + spider: + name: Spider Examples with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] + timeout-minutes: 60 + strategy: + matrix: + include: + - python-version: '3.10' + setup-script: 'legacy' + - python-version: '3.12' + setup-script: 'stable' + - python-version: '3.13' + setup-script: 'latest' + fail-fast: false + steps: + - name: Check GPU status + run: nvidia-smi + - name: Check disk space + run: df -h + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + python-version: ${{ matrix.python-version }} + - name: Upgrade dependencies (latest) + run: uv lock --upgrade + if: matrix.setup-script == 'latest' + - name: Sync dependencies + run: | + uv sync --frozen --no-default-groups --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + - name: Freeze dependencies + run: | + set -ex + uv pip freeze | tee requirements-freeze.txt + echo "UV_LOCKED=1" >> $GITHUB_ENV + echo "UV_NO_SYNC=1" >> $GITHUB_ENV + - name: Upload dependencies artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies-spider-${{ matrix.python-version }}-${{ matrix.setup-script }} + path: requirements-freeze.txt + compression-level: 0 + + - name: Launch LiteLLM Proxy + run: | + ./scripts/litellm_run.sh + env: + AZURE_API_BASE: ${{ secrets.AZURE_API_BASE }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + + - name: Prepare Spider dataset + run: | + set -ex + cd examples/spider + uv run gdown --fuzzy https://drive.google.com/file/d/1oi9J1jZP9TyM35L85CL3qeGWl2jqlnL6/view + unzip -q spider-data.zip -d data + rm spider-data.zip + + - name: Spider sanity check + run: | + set -ex + cd examples/spider + uv run sql_agent.py + env: + OPENAI_API_BASE: http://localhost:12306/ + OPENAI_API_KEY: dummy if: success() || failure() - name: Spider training @@ -283,7 +246,6 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} id: spider_train - if: success() || failure() - name: Validate Spider training run: | @@ -293,7 +255,143 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - # Unsloth Examples test + + apo: + name: APO Integrations with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + # This job is run on GitHub hosted runners rather than self-hosted runners because it needs no GPU. + runs-on: ubuntu-latest + timeout-minutes: 30 + strategy: + matrix: + include: + - python-version: '3.10' + setup-script: 'legacy' + - python-version: '3.12' + setup-script: 'stable' + - python-version: '3.13' + setup-script: 'latest' + fail-fast: false + steps: + - name: Check GPU status + run: nvidia-smi + - name: Check disk space + run: df -h + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + python-version: ${{ matrix.python-version }} + - name: Upgrade dependencies (latest) + run: uv lock --upgrade + if: matrix.setup-script == 'latest' + - name: Sync dependencies + run: | + uv sync --frozen --no-default-groups --extra apo --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + - name: Freeze dependencies + run: | + set -ex + uv pip freeze | tee requirements-freeze.txt + echo "UV_LOCKED=1" >> $GITHUB_ENV + echo "UV_NO_SYNC=1" >> $GITHUB_ENV + - name: Upload dependencies artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies-apo-${{ matrix.python-version }}-${{ matrix.setup-script }} + path: requirements-freeze.txt + compression-level: 0 + + - name: Launch LiteLLM Proxy + run: | + ./scripts/litellm_run.sh + env: + AZURE_API_BASE: ${{ secrets.AZURE_API_BASE }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + + - name: APO custom algorithm + run: | + set -ex + cd examples/apo + uv run apo_custom_algorithm_trainer.py | tee _ci_apo.log + # Check whether the log contains "Best prompt found:" + grep "Best prompt found:" _ci_apo.log + env: + # New versions follow OPENAI_BASE_URL instead of OPENAI_API_BASE + OPENAI_BASE_URL: http://localhost:12306/ + OPENAI_API_KEY: dummy + - name: APO custom algorithm debugger + run: | + set -ex + cd examples/apo + uv run apo_debug.py --mode runner + uv run apo_debug.py --mode hook + uv run apo_debug.py --mode trainer + env: + # New versions follow OPENAI_BASE_URL instead of OPENAI_API_BASE + OPENAI_BASE_URL: http://localhost:12306/ + OPENAI_API_KEY: dummy + + - name: APO built-in algorithm + run: | + set -ex + cd examples/apo + uv run room_selector_apo.py + env: + OPENAI_BASE_URL: http://localhost:12306/ + OPENAI_API_KEY: dummy + if: matrix.setup-script != 'legacy' + + + unsloth: + name: Unsloth Integrations with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] + timeout-minutes: 30 + strategy: + matrix: + # Legacy versions are not supported for Unsloth examples. + include: + - python-version: '3.12' + setup-script: 'stable' + - python-version: '3.13' + setup-script: 'latest' + fail-fast: false + steps: + - name: Check GPU status + run: nvidia-smi + - name: Check disk space + run: df -h + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + python-version: ${{ matrix.python-version }} + - name: Upgrade dependencies (latest) + run: uv lock --upgrade + if: matrix.setup-script == 'latest' + - name: Sync dependencies + run: | + uv sync --frozen --no-default-groups --extra verl \ + --group dev --group experiment --group trl --group agents --group torch-gpu-stable + - name: Freeze dependencies + run: | + set -ex + uv pip freeze | tee requirements-freeze.txt + echo "UV_LOCKED=1" >> $GITHUB_ENV + echo "UV_NO_SYNC=1" >> $GITHUB_ENV + - name: Upload dependencies artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies-unsloth-${{ matrix.python-version }}-${{ matrix.setup-script }} + path: requirements-freeze.txt + compression-level: 0 + + - name: Prepare Unsloth model + run: | + set -ex + cd examples/unsloth + rm -rf models + uv run hf download unsloth/Qwen3-4B-Instruct-2507 --local-dir models/version_0 + - name: Unsloth SFT example run: | set -ex @@ -327,7 +425,6 @@ jobs: env: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - if: ${{ (success() || failure()) && matrix.setup-script != 'legacy' }} - name: Unsloth SFT example all-in-one run: | @@ -344,9 +441,123 @@ jobs: env: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} - if: matrix.setup-script != 'legacy' - # Cleanup - - name: Cleanup - run: ./scripts/cleanup.sh + + backward-compatibility: + name: Backward Compatibility Test with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] + timeout-minutes: 30 + strategy: + matrix: + include: + - python-version: '3.10' + setup-script: 'legacy' + - python-version: '3.12' + setup-script: 'stable' + fail-fast: false + steps: + - name: Check GPU status + run: nvidia-smi + - name: Check disk space + run: df -h + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + python-version: ${{ matrix.python-version }} + - name: Sync dependencies + run: | + uv sync --frozen --no-default-groups --extra apo --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + - name: Freeze dependencies + run: | + set -ex + uv pip freeze | tee requirements-freeze.txt + echo "UV_LOCKED=1" >> $GITHUB_ENV + echo "UV_NO_SYNC=1" >> $GITHUB_ENV + - name: Upload dependencies artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies-backward-compatibility-${{ matrix.python-version }}-${{ matrix.setup-script }} + path: requirements-freeze.txt + compression-level: 0 + + - name: Launch LiteLLM Proxy + run: | + ./scripts/litellm_run.sh + env: + AZURE_API_BASE: ${{ secrets.AZURE_API_BASE }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + - name: Prepare Calc-X dataset + run: | + set -ex + cd examples/calc_x + uv run gdown --fuzzy https://drive.google.com/file/d/1FQMyKLLd6hP9dw9rfZn1EZOWNvKaDsqw/view + unzip calc-x-data.zip -d data + rm calc-x-data.zip + + - name: APO example (legacy client-server style) + run: | + set -ex + cd examples/apo + uv run legacy_apo_client.py & + sleep 3 # Wait for the client to be up + uv run legacy_apo_server.py + pkill -f legacy_apo_client.py && echo "SIGTERM sent to legacy_apo_client.py" || echo "No legacy_apo_client.py process found" + while pgrep -f legacy_apo_client.py; do + echo "Waiting for legacy_apo_client.py to finish..." + sleep 5 + done + echo "legacy_apo_client.py has finished." + sleep 10 + env: + OPENAI_API_BASE: http://localhost:12306/ + OPENAI_API_KEY: dummy + + - name: Calc-X MCP sanity check + run: | + set -ex + cd examples/calc_x + uv run tests/test_mcp_calculator.py + env: + OPENAI_API_BASE: http://localhost:12306/ + OPENAI_API_KEY: dummy + - name: Calc-X sanity check + run: | + set -ex + cd examples/calc_x + uv run legacy_calc_agent_debug.py + env: + OPENAI_BASE_URL: http://localhost:12306/ + OPENAI_API_KEY: dummy + + - name: Calc-X training (legacy client-server style) + run: | + set -ex + source .venv/bin/activate + cd examples/calc_x + ../../scripts/restart_ray.sh + sleep 5 + PYTHONUNBUFFERED=1 python legacy_calc_agent.py & + bash legacy_train.sh + pkill -f legacy_calc_agent.py && echo "SIGTERM sent to legacy_calc_agent.py" || echo "No legacy_calc_agent.py process found" + while pgrep -f legacy_calc_agent.py; do + echo "Waiting for legacy_calc_agent.py to finish..." + sleep 5 + done + echo "legacy_calc_agent.py has finished." + sleep 10 + shell: bash + env: + WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} + WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} + id: calc_x_train if: success() || failure() + + - name: Validate Calc-X training + run: | + set -ex + uv run scripts/validate_example_wandb.py ${{ steps.calc_x_train.outputs.project_name }} ${{ steps.calc_x_train.outputs.run_name }} + env: + WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} + WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} From da9c6eea7c8ea649a2960299c1cad581b664be82 Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 20 Oct 2025 12:19:55 +0800 Subject: [PATCH 2/4] . --- .github/workflows/examples.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 14d4c68d5..514c3085e 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -36,7 +36,11 @@ jobs: - name: Upgrade dependencies (latest) run: uv lock --upgrade if: matrix.setup-script == 'latest' - - name: Sync dependencies + - name: Sync dependencies (latest) + run: | + uv sync --frozen --no-default-groups --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-stable + - name: Sync dependencies (stable & legacy) run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} @@ -190,7 +194,11 @@ jobs: - name: Upgrade dependencies (latest) run: uv lock --upgrade if: matrix.setup-script == 'latest' - - name: Sync dependencies + - name: Sync dependencies (latest) + run: | + uv sync --frozen --no-default-groups --extra verl \ + --group dev --group experiment --group agents --group torch-gpu-stable + - name: Sync dependencies (stable & legacy) run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} @@ -272,10 +280,6 @@ jobs: setup-script: 'latest' fail-fast: false steps: - - name: Check GPU status - run: nvidia-smi - - name: Check disk space - run: df -h - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v7 with: @@ -284,10 +288,14 @@ jobs: - name: Upgrade dependencies (latest) run: uv lock --upgrade if: matrix.setup-script == 'latest' - - name: Sync dependencies + - name: Sync dependencies (latest) run: | - uv sync --frozen --no-default-groups --extra apo --extra verl \ - --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + uv sync --frozen --no-default-groups --extra apo \ + --group dev --group experiment --group agents --group core-stable + - name: Sync dependencies (stable & legacy) + run: | + uv sync --frozen --no-default-groups --extra apo \ + --group dev --group experiment --group agents --group core-${{ matrix.setup-script }} - name: Freeze dependencies run: | set -ex From 216417ada32e07d1d272d8367b077d82da9b2057 Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 20 Oct 2025 12:23:08 +0800 Subject: [PATCH 3/4] . --- .github/workflows/examples.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 514c3085e..3e042e3e4 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -10,7 +10,7 @@ on: jobs: calc-x: - name: Calc-X Examples with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + name: Calc-X (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] timeout-minutes: 120 strategy: @@ -40,10 +40,12 @@ jobs: run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-stable + if: matrix.setup-script == 'latest' - name: Sync dependencies (stable & legacy) run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + if: matrix.setup-script != 'latest' - name: Freeze dependencies run: | set -ex @@ -168,7 +170,7 @@ jobs: spider: - name: Spider Examples with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + name: Spider (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] timeout-minutes: 60 strategy: @@ -198,10 +200,12 @@ jobs: run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-stable + if: matrix.setup-script == 'latest' - name: Sync dependencies (stable & legacy) run: | uv sync --frozen --no-default-groups --extra verl \ --group dev --group experiment --group agents --group torch-gpu-${{ matrix.setup-script }} + if: matrix.setup-script != 'latest' - name: Freeze dependencies run: | set -ex @@ -265,7 +269,7 @@ jobs: apo: - name: APO Integrations with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + name: APO (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) # This job is run on GitHub hosted runners rather than self-hosted runners because it needs no GPU. runs-on: ubuntu-latest timeout-minutes: 30 @@ -292,10 +296,12 @@ jobs: run: | uv sync --frozen --no-default-groups --extra apo \ --group dev --group experiment --group agents --group core-stable + if: matrix.setup-script == 'latest' - name: Sync dependencies (stable & legacy) run: | uv sync --frozen --no-default-groups --extra apo \ --group dev --group experiment --group agents --group core-${{ matrix.setup-script }} + if: matrix.setup-script != 'latest' - name: Freeze dependencies run: | set -ex @@ -351,7 +357,7 @@ jobs: unsloth: - name: Unsloth Integrations with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + name: Unsloth (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] timeout-minutes: 30 strategy: @@ -452,7 +458,7 @@ jobs: backward-compatibility: - name: Backward Compatibility Test with Python ${{ matrix.python-version }} (${{ matrix.setup-script }}) + name: Backward Compatibility (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] timeout-minutes: 30 strategy: From e641a1da5586a1037772331bbcd5aa5b8557f995 Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 20 Oct 2025 12:47:14 +0800 Subject: [PATCH 4/4] . --- .github/workflows/examples.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 3e042e3e4..706385f47 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -12,7 +12,7 @@ jobs: calc-x: name: Calc-X (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] - timeout-minutes: 120 + timeout-minutes: 90 strategy: matrix: include: @@ -109,7 +109,6 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} id: calc_x_train - if: success() || failure() - name: Validate Calc-X training run: | @@ -133,7 +132,6 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} id: calc_x_train_llm_proxy - if: success() || failure() - name: Calc-X training with external store run: | @@ -166,7 +164,6 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} id: calc_x_train_external_store - if: success() || failure() spider: @@ -359,7 +356,7 @@ jobs: unsloth: name: Unsloth (Python ${{ matrix.python-version }}, ${{ matrix.setup-script }}) runs-on: [self-hosted, 1ES.Pool=agl-runner-gpu] - timeout-minutes: 30 + timeout-minutes: 60 strategy: matrix: # Legacy versions are not supported for Unsloth examples. @@ -566,7 +563,6 @@ jobs: WANDB_BASE_URL: ${{ secrets.MSR_WANDB_BASE_URL }} WANDB_API_KEY: ${{ secrets.MSR_WANDB_API_KEY }} id: calc_x_train - if: success() || failure() - name: Validate Calc-X training run: |