mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-27 23:11:59 +00:00
feat: export distribution container build artifacts
Add a new --export-dir flag to the `llama stack build` command that allows users to export container build artifacts to a specified directory instead of building the container directly. This feature is useful for: - Building containers in different environments - Sharing build configurations - Customizing the build process The exported tarball includes: - Containerfile (Dockerfile) - Run configuration file (if building from config) - External provider files (if specified) - Build script for assistance The tarball is named with a timestamp for uniqueness: <distro-name>_<timestamp>.tar.gz Documentation has been updated in building_distro.md to reflect this new functionality as well as integration tests. Signed-off-by: Sébastien Han <seb@redhat.com>
This commit is contained in:
parent
047303e339
commit
e9bcb0e827
7 changed files with 186 additions and 22 deletions
52
.github/workflows/providers-build.yml
vendored
52
.github/workflows/providers-build.yml
vendored
|
|
@ -198,3 +198,55 @@ jobs:
|
|||
'source /etc/os-release && echo "$ID"' \
|
||||
| grep -qE '^(rhel|ubi)$' \
|
||||
|| { echo "Base image is not UBI 9!"; exit 1; }
|
||||
|
||||
export-build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5.4.1
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install LlamaStack
|
||||
run: |
|
||||
uv venv
|
||||
source .venv/bin/activate
|
||||
uv pip install -e .
|
||||
|
||||
- name: Pin template to UBI9 base
|
||||
run: |
|
||||
yq -i '
|
||||
.image_type = "container" |
|
||||
.image_name = "ubi9-test" |
|
||||
.distribution_spec.container_image = "registry.access.redhat.com/ubi9:latest"
|
||||
' llama_stack/templates/starter/build.yaml
|
||||
|
||||
- name: Test the export
|
||||
run: |
|
||||
# Support for USE_COPY_NOT_MOUNT=true LLAMA_STACK_DIR=. will be added in the future
|
||||
uv run llama stack build --config llama_stack/templates/starter/build.yaml --export-dir export
|
||||
for file in export/*; do
|
||||
echo "File: $file"
|
||||
if [[ "$file" == *.tar.gz ]]; then
|
||||
echo "Tarball found"
|
||||
tarball_found=1
|
||||
tar -xzvf "$file" -C export
|
||||
else
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
if [ -z "$tarball_found" ]; then
|
||||
echo "Tarball not found"
|
||||
exit 1
|
||||
fi
|
||||
cd export
|
||||
docker build -t export-test -f ./Containerfile .
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue