From 626639beee8b62c212ba37127f87d0a677e3e276 Mon Sep 17 00:00:00 2001 From: Ashwin Bharambe Date: Thu, 30 Oct 2025 22:46:39 -0700 Subject: [PATCH] refactor: consolidate all client install logic into single action Renamed install-client-for-release to install-llama-stack-client and made it handle both release branches and client-version inputs. Now all client installation logic lives in one place: - Release branches: always install from matching git branch - Non-release branches: install based on client-version input This eliminates all the conditional logic from setup-runner. --- .../action.yml | 29 +++++++++++++++---- .github/actions/setup-runner/action.yml | 25 +++------------- .github/workflows/pre-commit.yml | 4 +-- 3 files changed, 29 insertions(+), 29 deletions(-) rename .github/actions/{install-client-for-release => install-llama-stack-client}/action.yml (50%) diff --git a/.github/actions/install-client-for-release/action.yml b/.github/actions/install-llama-stack-client/action.yml similarity index 50% rename from .github/actions/install-client-for-release/action.yml rename to .github/actions/install-llama-stack-client/action.yml index aea4d6089..15d678f3f 100644 --- a/.github/actions/install-client-for-release/action.yml +++ b/.github/actions/install-llama-stack-client/action.yml @@ -1,10 +1,16 @@ -name: Install Client for Release Branch -description: Pre-install llama-stack-client from git on release branches to satisfy RC dependencies before uv sync +name: Install llama-stack-client +description: Install llama-stack-client based on branch context and client-version input + +inputs: + client-version: + description: 'Client version to install on non-release branches (latest or published). Ignored on release branches.' + required: false + default: "" runs: using: "composite" steps: - - name: Install client from release branch if needed + - name: Install llama-stack-client shell: bash run: | # Determine the branch we're working with @@ -15,9 +21,8 @@ runs: echo "Working with branch: $BRANCH" - # If on a release branch, install from matching release branch BEFORE uv sync - # This allows uv sync to resolve dependencies that reference unreleased RC versions - # We always do this on release branches regardless of client-version to satisfy pyproject.toml + # On release branches: always install from matching git branch to satisfy RC dependencies + # On non-release branches: install based on client-version input if [[ "$BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then echo "Detected release branch: $BRANCH" echo "Checking if matching branch exists in llama-stack-client-python..." @@ -31,4 +36,16 @@ runs: echo "::error::Please create the matching release branch in llama-stack-client-python before testing" exit 1 fi + elif [ -n "${{ inputs.client-version }}" ]; then + # Non-release branch with client-version specified + if [ "${{ inputs.client-version }}" = "latest" ]; then + echo "Installing latest llama-stack-client-python from main branch" + uv pip install git+https://github.com/llamastack/llama-stack-client-python.git@main + elif [ "${{ inputs.client-version }}" = "published" ]; then + echo "Installing published llama-stack-client-python from PyPI" + uv pip install llama-stack-client + else + echo "Invalid client-version: ${{ inputs.client-version }}" + exit 1 + fi fi diff --git a/.github/actions/setup-runner/action.yml b/.github/actions/setup-runner/action.yml index 9804c5e6e..b039e7fa8 100644 --- a/.github/actions/setup-runner/action.yml +++ b/.github/actions/setup-runner/action.yml @@ -18,36 +18,19 @@ runs: python-version: ${{ inputs.python-version }} version: 0.7.6 - - name: Pre-install client for release branches - uses: ./.github/actions/install-client-for-release + - name: Install llama-stack-client + uses: ./.github/actions/install-llama-stack-client + with: + client-version: ${{ inputs.client-version }} - name: Install dependencies shell: bash run: | - # Determine the branch we're working with (needed for post-install logic) - BRANCH="${{ github.base_ref || github.ref }}" - BRANCH="${BRANCH#refs/heads/}" - echo "Updating project dependencies via uv sync" uv sync --all-groups echo "Installing ad-hoc dependencies" uv pip install faiss-cpu - # Install llama-stack-client-python based on the client-version input - # Only applies to non-release branches (on release branches, we already installed from git above) - if [[ ! "$BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then - if [ "${{ inputs.client-version }}" = "latest" ]; then - echo "Installing latest llama-stack-client-python from main branch" - uv pip install git+https://github.com/llamastack/llama-stack-client-python.git@main - elif [ "${{ inputs.client-version }}" = "published" ]; then - echo "Installing published llama-stack-client-python from PyPI" - uv pip install llama-stack-client - else - echo "Invalid client-version: ${{ inputs.client-version }}" - exit 1 - fi - fi - echo "Installed llama packages" uv pip list | grep llama diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index eb0c35024..5ec6a0459 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -130,8 +130,8 @@ jobs: exit 1 fi - - name: Pre-install client for release branches - uses: ./.github/actions/install-client-for-release + - name: Install llama-stack-client + uses: ./.github/actions/install-llama-stack-client - name: Sync dev + type_checking dependencies run: uv sync --group dev --group type_checking