diff --git a/.github/workflows/providers-build.yml b/.github/workflows/providers-build.yml index e0edb5486..560a4601a 100644 --- a/.github/workflows/providers-build.yml +++ b/.github/workflows/providers-build.yml @@ -12,7 +12,7 @@ on: - 'llama_stack/core/build.*' - 'llama_stack/core/*.sh' - '.github/workflows/providers-build.yml' - - 'llama_stack/templates/**' + - 'llama_stack/distributions/**' - 'pyproject.toml' pull_request: @@ -22,7 +22,7 @@ on: - 'llama_stack/core/build.*' - 'llama_stack/core/*.sh' - '.github/workflows/providers-build.yml' - - 'llama_stack/templates/**' + - 'llama_stack/distributions/**' - 'pyproject.toml' concurrency: @@ -33,23 +33,23 @@ jobs: generate-matrix: runs-on: ubuntu-latest outputs: - templates: ${{ steps.set-matrix.outputs.templates }} + distros: ${{ steps.set-matrix.outputs.distros }} steps: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Generate Template List + - name: Generate Distribution 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" + distros=$(ls llama_stack/distributions/*/*build.yaml | awk -F'/' '{print $(NF-1)}' | jq -R -s -c 'split("\n")[:-1]') + echo "distros=$distros" >> "$GITHUB_OUTPUT" build: needs: generate-matrix runs-on: ubuntu-latest strategy: matrix: - template: ${{ fromJson(needs.generate-matrix.outputs.templates) }} + distro: ${{ fromJson(needs.generate-matrix.outputs.distros) }} image-type: [venv, container] fail-fast: false # We want to run all jobs even if some fail @@ -62,7 +62,7 @@ jobs: - name: Print build dependencies run: | - uv run llama stack build --template ${{ matrix.template }} --image-type ${{ matrix.image-type }} --image-name test --print-deps-only + uv run llama stack build --distro ${{ matrix.distro }} --image-type ${{ matrix.image-type }} --image-name test --print-deps-only - name: Run Llama Stack Build run: | @@ -99,16 +99,16 @@ jobs: - name: Build a single provider run: | - yq -i '.image_type = "container"' llama_stack/templates/ci-tests/build.yaml - yq -i '.image_name = "test"' llama_stack/templates/ci-tests/build.yaml - USE_COPY_NOT_MOUNT=true LLAMA_STACK_DIR=. uv run llama stack build --config llama_stack/templates/ci-tests/build.yaml + yq -i '.image_type = "container"' llama_stack/distributions/ci-tests/build.yaml + yq -i '.image_name = "test"' llama_stack/distributions/ci-tests/build.yaml + USE_COPY_NOT_MOUNT=true LLAMA_STACK_DIR=. uv run llama stack build --config llama_stack/distributions/ci-tests/build.yaml - name: Inspect the container image entrypoint run: | IMAGE_ID=$(docker images --format "{{.Repository}}:{{.Tag}}" | head -n 1) entrypoint=$(docker inspect --format '{{ .Config.Entrypoint }}' $IMAGE_ID) echo "Entrypoint: $entrypoint" - if [ "$entrypoint" != "[python -m llama_stack.core.server.server --config /app/run.yaml]" ]; then + if [ "$entrypoint" != "[python -m llama_stack.core.server.server /app/run.yaml]" ]; then echo "Entrypoint is not correct" exit 1 fi @@ -122,27 +122,27 @@ jobs: - name: Install dependencies uses: ./.github/actions/setup-runner - - name: Pin template to UBI9 base + - name: Pin distribution 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/ci-tests/build.yaml + ' llama_stack/distributions/ci-tests/build.yaml - name: Build dev container (UBI9) env: USE_COPY_NOT_MOUNT: "true" LLAMA_STACK_DIR: "." run: | - uv run llama stack build --config llama_stack/templates/ci-tests/build.yaml + uv run llama stack build --config llama_stack/distributions/ci-tests/build.yaml - name: Inspect UBI9 image run: | IMAGE_ID=$(docker images --format "{{.Repository}}:{{.Tag}}" | head -n 1) entrypoint=$(docker inspect --format '{{ .Config.Entrypoint }}' $IMAGE_ID) echo "Entrypoint: $entrypoint" - if [ "$entrypoint" != "[python -m llama_stack.core.server.server --config /app/run.yaml]" ]; then + if [ "$entrypoint" != "[python -m llama_stack.core.server.server /app/run.yaml]" ]; then echo "Entrypoint is not correct" exit 1 fi diff --git a/llama_stack/cli/stack/_build.py b/llama_stack/cli/stack/_build.py index 6cff920f2..c6e204773 100644 --- a/llama_stack/cli/stack/_build.py +++ b/llama_stack/cli/stack/_build.py @@ -428,11 +428,11 @@ def _run_stack_build_command_from_build_config( raise RuntimeError(f"Failed to build image {image_name}") if distro_name: - # copy run.yaml from template to build_dir instead of generating it again - template_path = importlib.resources.files("llama_stack") / f"templates/{distro_name}/run.yaml" + # copy run.yaml from distribution to build_dir instead of generating it again + distro_path = importlib.resources.files("llama_stack") / f"distributions/{distro_name}/run.yaml" run_config_file = build_dir / f"{distro_name}-run.yaml" - with importlib.resources.as_file(template_path) as path: + with importlib.resources.as_file(distro_path) as path: shutil.copy(path, run_config_file) cprint("Build Successful!", color="green", file=sys.stderr) @@ -443,7 +443,7 @@ def _run_stack_build_command_from_build_config( color="green", file=sys.stderr, ) - return template_path + return distro_path else: return _generate_run_config(build_config, build_dir, image_name)