From f59794d70fe310d01fddd283fd8ea10f135af499 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Mon, 23 Mar 2026 05:13:13 +0000 Subject: [PATCH] remove Python CLI from all CI jobs, use Rust binary artifact everywhere --- .github/workflows/ci.yml | 95 +++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20782b98..218f2d68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -210,7 +210,7 @@ jobs: # E2E: prompt_gateway tests # ────────────────────────────────────────────── test-prompt-gateway: - needs: docker-build + needs: [docker-build, plano-cli-tests] runs-on: ubuntu-latest steps: - name: Checkout code @@ -231,6 +231,15 @@ jobs: - name: Load plano image run: docker load -i /tmp/plano-image.tar + - name: Download planoai binary + uses: actions/download-artifact@v6 + with: + name: planoai-binary + path: /usr/local/bin/ + + - name: Make binary executable + run: chmod +x /usr/local/bin/planoai + - name: Set up Python uses: actions/setup-python@v6 with: @@ -240,9 +249,7 @@ jobs: uses: astral-sh/setup-uv@v7 with: enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock + cache-dependency-glob: tests/e2e/uv.lock - name: Run prompt_gateway tests env: @@ -260,7 +267,7 @@ jobs: # E2E: model_alias_routing tests # ────────────────────────────────────────────── test-model-alias-routing: - needs: docker-build + needs: [docker-build, plano-cli-tests] runs-on: ubuntu-latest steps: - name: Checkout code @@ -281,6 +288,15 @@ jobs: - name: Load plano image run: docker load -i /tmp/plano-image.tar + - name: Download planoai binary + uses: actions/download-artifact@v6 + with: + name: planoai-binary + path: /usr/local/bin/ + + - name: Make binary executable + run: chmod +x /usr/local/bin/planoai + - name: Set up Python uses: actions/setup-python@v6 with: @@ -290,9 +306,7 @@ jobs: uses: astral-sh/setup-uv@v7 with: enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock + cache-dependency-glob: tests/e2e/uv.lock - name: Run model alias routing tests env: @@ -310,7 +324,7 @@ jobs: # E2E: responses API with state tests # ────────────────────────────────────────────── test-responses-api-with-state: - needs: docker-build + needs: [docker-build, plano-cli-tests] runs-on: ubuntu-latest steps: - name: Checkout code @@ -331,6 +345,15 @@ jobs: - name: Load plano image run: docker load -i /tmp/plano-image.tar + - name: Download planoai binary + uses: actions/download-artifact@v6 + with: + name: planoai-binary + path: /usr/local/bin/ + + - name: Make binary executable + run: chmod +x /usr/local/bin/planoai + - name: Set up Python uses: actions/setup-python@v6 with: @@ -340,9 +363,7 @@ jobs: uses: astral-sh/setup-uv@v7 with: enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock + cache-dependency-glob: tests/e2e/uv.lock - name: Run responses API with state tests env: @@ -425,17 +446,12 @@ jobs: # E2E: demo — preference based routing # ────────────────────────────────────────────── e2e-demo-preference: - needs: docker-build + needs: [docker-build, plano-cli-tests] runs-on: ubuntu-latest-m steps: - name: Checkout code uses: actions/checkout@v6 - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: "3.14" - - name: Download plano image uses: actions/download-artifact@v7 with: @@ -445,23 +461,20 @@ jobs: - name: Load plano image run: docker load -i /tmp/plano-image.tar - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Download planoai binary + uses: actions/download-artifact@v6 + with: + name: planoai-binary + path: /usr/local/bin/ - - name: Setup python venv - run: python -m venv venv + - name: Make binary executable + run: chmod +x /usr/local/bin/planoai - name: Install hurl run: | curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb sudo dpkg -i hurl_4.0.0_amd64.deb - - name: Install plano gateway and test dependencies - run: | - source venv/bin/activate - cd cli && echo "installing plano cli" && uv sync && uv tool install . - cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync - - name: Run demo tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} @@ -470,24 +483,18 @@ jobs: ARCH_API_KEY: ${{ secrets.ARCH_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | - source venv/bin/activate cd demos/shared/test_runner && sh run_demo_tests.sh llm_routing/preference_based_routing # ────────────────────────────────────────────── # E2E: demo — currency conversion # ────────────────────────────────────────────── e2e-demo-currency: - needs: docker-build + needs: [docker-build, plano-cli-tests] runs-on: ubuntu-latest-m steps: - name: Checkout code uses: actions/checkout@v6 - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: "3.14" - - name: Download plano image uses: actions/download-artifact@v7 with: @@ -497,28 +504,24 @@ jobs: - name: Load plano image run: docker load -i /tmp/plano-image.tar - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Download planoai binary + uses: actions/download-artifact@v6 + with: + name: planoai-binary + path: /usr/local/bin/ - - name: Setup python venv - run: python -m venv venv + - name: Make binary executable + run: chmod +x /usr/local/bin/planoai - name: Install hurl run: | curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb sudo dpkg -i hurl_4.0.0_amd64.deb - - name: Install plano gateway and test dependencies - run: | - source venv/bin/activate - cd cli && echo "installing plano cli" && uv sync && uv tool install . - cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync - - name: Run demo tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} run: | - source venv/bin/activate cd demos/shared/test_runner && sh run_demo_tests.sh advanced/currency_exchange