mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-28 08:41:59 +00:00
* build_container.sh - append `python3.11‑devel gcc make` to UBI 9 dnf line so C‑ext wheels build. * tests/integration - + test_ubi9_toolchain.py (fast; asserts pkgs exist in Containerfile) - + test_ubi9_compiles.py (slow; @integration, compiles hello‑world in built image) - – test_container_build.py (removed heavyweight test) * pytest.ini - register `integration` marker. * CI - tests.yml ⇒ `pytest -m "not integration"` - providers_build.yml ⇒ run integration compiler smoke for container jobs
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
name: Test Llama Stack Build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'llama_stack/cli/stack/build.py'
|
|
- 'llama_stack/cli/stack/_build.py'
|
|
- 'llama_stack/distribution/build.*'
|
|
- 'llama_stack/distribution/*.sh'
|
|
- '.github/workflows/providers-build.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'llama_stack/cli/stack/build.py'
|
|
- 'llama_stack/cli/stack/_build.py'
|
|
- 'llama_stack/distribution/build.*'
|
|
- 'llama_stack/distribution/*.sh'
|
|
- '.github/workflows/providers-build.yml'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
generate-matrix:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
templates: ${{ steps.set-matrix.outputs.templates }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Generate Template List
|
|
id: set-matrix
|
|
run: |
|
|
templates=$(ls llama_stack/templates/*/*build.yaml | awk -F'/' '{print $(NF-1)}' | jq -R -s -c 'split("\n")[:-1]')
|
|
echo "templates=$templates" >> "$GITHUB_OUTPUT"
|
|
|
|
build:
|
|
needs: generate-matrix
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
template: ${{ fromJson(needs.generate-matrix.outputs.templates) }}
|
|
image-type: [venv, container]
|
|
fail-fast: false # We want to run all jobs even if some fail
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@22695119d769bdb6f7032ad67b9bca0ef8c4a174 # v5.4.0
|
|
with:
|
|
python-version: "3.10"
|
|
|
|
- name: Install LlamaStack
|
|
run: |
|
|
uv venv
|
|
source .venv/bin/activate
|
|
uv pip install -e .
|
|
|
|
- name: Print build dependencies
|
|
run: |
|
|
uv run llama stack build --template ${{ matrix.template }} --image-type ${{ matrix.image-type }} --image-name test --print-deps-only
|
|
|
|
- name: Run Llama Stack Build
|
|
run: |
|
|
# USE_COPY_NOT_MOUNT is set to true since mounting is not supported by docker buildx, we use COPY instead
|
|
# LLAMA_STACK_DIR is set to the current directory so we are building from the source
|
|
USE_COPY_NOT_MOUNT=true LLAMA_STACK_DIR=. uv run llama stack build --template ${{ matrix.template }} --image-type ${{ matrix.image-type }} --image-name test
|
|
|
|
- name: Integration compiler smoke
|
|
if: matrix.image-type == 'container'
|
|
run: |
|
|
pytest -m integration tests/integration/test_ubi9_compiles.py
|
|
|
|
- name: Print dependencies in the image
|
|
if: matrix.image-type == 'venv'
|
|
run: |
|
|
source test/bin/activate
|
|
uv pip list
|