mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 18:00:36 +00:00
Backport of #4001 to release-0.3.x branch. Fixes CI failures on release branches where uv sync can't resolve RC dependencies. ## The Problem On release branches like `release-0.3.x`, pyproject.toml requires `llama-stack-client>=0.3.1rc1`. RC versions only exist on test.pypi, not PyPI. This causes multiple CI failures: 1. `uv sync` fails because it can't resolve RC versions from PyPI 2. pre-commit hooks (uv-lock, codegen) fail for the same reason 3. mypy workflow section needs uv installed ## The Solution Configure UV to use test.pypi when on release branches: - Set `UV_INDEX_URL=https://test.pypi.org/simple/` (primary) - Set `UV_EXTRA_INDEX_URL=https://pypi.org/simple/` (fallback) - Set `UV_INDEX_STRATEGY=unsafe-best-match` to check both indexes This allows `uv sync` to resolve common packages from PyPI and RC versions from test.pypi. ## Additional Fixes - Export UV env vars to `GITHUB_ENV` so pre-commit hooks inherit them - Install uv in pre-commit workflow for mypy section - Handle missing `type_checking` dependency group on release-0.3.x - Regenerate uv.lock with RC versions for the release branch ## Changes - Created reusable `install-llama-stack-client` action for configuration - Modified `setup-runner` to set UV environment variables before sync - Modified `pre-commit` workflow to configure client and export env vars - Updated uv.lock with RC versions from test.pypi This is a cherry-pick of commitsafa9f0882,c86e6e906,626639bee, and081566321from main, plus additional fixes for release branch compatibility.
42 lines
1.3 KiB
Bash
Executable file
42 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
set -euo pipefail
|
|
|
|
# Detect current branch and target branch
|
|
# In GitHub Actions, use GITHUB_REF/GITHUB_BASE_REF
|
|
if [[ -n "${GITHUB_REF:-}" ]]; then
|
|
BRANCH="${GITHUB_REF#refs/heads/}"
|
|
else
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
|
fi
|
|
|
|
# For PRs, check the target branch
|
|
if [[ -n "${GITHUB_BASE_REF:-}" ]]; then
|
|
TARGET_BRANCH="${GITHUB_BASE_REF}"
|
|
else
|
|
TARGET_BRANCH=$(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null | sed 's|origin/||' || echo "")
|
|
fi
|
|
|
|
# Check if on a release branch or targeting one, or LLAMA_STACK_RELEASE_MODE is set
|
|
IS_RELEASE=false
|
|
if [[ "$BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
|
IS_RELEASE=true
|
|
elif [[ "$TARGET_BRANCH" =~ ^release-[0-9]+\.[0-9]+\.x$ ]]; then
|
|
IS_RELEASE=true
|
|
elif [[ "${LLAMA_STACK_RELEASE_MODE:-}" == "true" ]]; then
|
|
IS_RELEASE=true
|
|
fi
|
|
|
|
# On release branches, use test.pypi as extra index for RC versions
|
|
if [[ "$IS_RELEASE" == "true" ]]; then
|
|
export UV_EXTRA_INDEX_URL="https://test.pypi.org/simple/"
|
|
export UV_INDEX_STRATEGY="unsafe-best-match"
|
|
fi
|
|
|
|
# Run uv with all arguments passed through
|
|
exec uv "$@"
|