mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-27 18:50:41 +00:00
ci: add python package build test (#2457)
# What does this PR do? We now test a package build on every PRs. Closes: https://github.com/meta-llama/llama-stack/issues/2406 Signed-off-by: Sébastien Han <seb@redhat.com>
This commit is contained in:
parent
fa1d986f72
commit
c20388c424
12 changed files with 143 additions and 0 deletions
45
.github/workflows/python-build-test.yml
vendored
Normal file
45
.github/workflows/python-build-test.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
name: Python Package Build Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: ['3.11', '3.12', '3.13']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
activate-environment: true
|
||||||
|
version: 0.7.6
|
||||||
|
|
||||||
|
- name: Build Llama Stack package
|
||||||
|
run: |
|
||||||
|
uv build
|
||||||
|
|
||||||
|
- name: Install Llama Stack package
|
||||||
|
run: |
|
||||||
|
uv pip install dist/*.whl
|
||||||
|
|
||||||
|
- name: Verify Llama Stack package
|
||||||
|
run: |
|
||||||
|
uv pip list
|
||||||
|
uv pip show llama-stack
|
||||||
|
command -v llama
|
||||||
|
llama model prompt-format -m Llama3.2-90B-Vision-Instruct
|
||||||
|
llama model list
|
||||||
|
llama stack list-apis
|
||||||
|
llama stack list-providers inference
|
|
@ -112,6 +112,14 @@ repos:
|
||||||
require_serial: true
|
require_serial: true
|
||||||
always_run: true
|
always_run: true
|
||||||
files: ^\.github/workflows/.*\.ya?ml$
|
files: ^\.github/workflows/.*\.ya?ml$
|
||||||
|
- id: check-init-py
|
||||||
|
name: Check for missing __init__.py files
|
||||||
|
entry: ./scripts/check-init-py.sh
|
||||||
|
language: system
|
||||||
|
pass_filenames: false
|
||||||
|
require_serial: true
|
||||||
|
always_run: true
|
||||||
|
files: ^llama_stack/.*$
|
||||||
|
|
||||||
ci:
|
ci:
|
||||||
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
5
llama_stack/models/llama/llama3_3/__init__.py
Normal file
5
llama_stack/models/llama/llama3_3/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
5
llama_stack/models/llama/llama4/vision/__init__.py
Normal file
5
llama_stack/models/llama/llama4/vision/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
5
llama_stack/providers/utils/responses/__init__.py
Normal file
5
llama_stack/providers/utils/responses/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
5
llama_stack/providers/utils/sqlstore/__init__.py
Normal file
5
llama_stack/providers/utils/sqlstore/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
5
llama_stack/providers/utils/tools/__init__.py
Normal file
5
llama_stack/providers/utils/tools/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# 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.
|
45
scripts/check-init-py.sh
Executable file
45
scripts/check-init-py.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env 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.
|
||||||
|
#
|
||||||
|
# Check for missing __init__.py files in Python packages
|
||||||
|
# This script finds directories that contain Python files but are missing __init__.py
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Use mapfile to get a faster way to iterate over directories
|
||||||
|
if (( BASH_VERSINFO[0] < 4 )); then
|
||||||
|
echo "This script requires Bash 4.0 or higher for mapfile support."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE_DIR="${1:-llama_stack}"
|
||||||
|
|
||||||
|
if [ ! -d "$PACKAGE_DIR" ]; then
|
||||||
|
echo "ERROR: Package directory '$PACKAGE_DIR' does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get all directories with Python files (excluding __init__.py)
|
||||||
|
mapfile -t py_dirs < <(
|
||||||
|
find "$PACKAGE_DIR" \
|
||||||
|
-type f \
|
||||||
|
-name "*.py" ! -name "__init__.py" \
|
||||||
|
! -path "*/.venv/*" \
|
||||||
|
-exec dirname {} \; | sort -u
|
||||||
|
)
|
||||||
|
|
||||||
|
missing_init_files=0
|
||||||
|
|
||||||
|
for dir in "${py_dirs[@]}"; do
|
||||||
|
if [ ! -f "$dir/__init__.py" ]; then
|
||||||
|
echo "ERROR: Missing __init__.py in directory: $dir"
|
||||||
|
echo "This directory contains Python files but no __init__.py, which may cause packaging issues."
|
||||||
|
missing_init_files=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $missing_init_files
|
Loading…
Add table
Add a link
Reference in a new issue