name: Test llama stack list-deps run-name: Test llama stack list-deps on: push: branches: - main paths: - 'llama_stack/cli/stack/list_deps.py' - 'llama_stack/cli/stack/_list_deps.py' - 'llama_stack/core/build.*' - 'llama_stack/core/*.sh' - '.github/workflows/providers-list-deps.yml' - 'llama_stack/templates/**' - 'pyproject.toml' pull_request: paths: - 'llama_stack/cli/stack/list_deps.py' - 'llama_stack/cli/stack/_list_deps.py' - 'llama_stack/core/build.*' - 'llama_stack/core/*.sh' - '.github/workflows/providers-list-deps.yml' - 'llama_stack/templates/**' - 'pyproject.toml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: generate-matrix: runs-on: ubuntu-latest outputs: distros: ${{ steps.set-matrix.outputs.distros }} steps: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Generate Distribution List id: set-matrix run: | distros=$(ls llama_stack/distributions/*/*build.yaml | awk -F'/' '{print $(NF-1)}' | jq -R -s -c 'split("\n")[:-1]') echo "distros=$distros" >> "$GITHUB_OUTPUT" list-deps: needs: generate-matrix runs-on: ubuntu-latest strategy: matrix: distro: ${{ fromJson(needs.generate-matrix.outputs.distros) }} 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: Install dependencies uses: ./.github/actions/setup-runner - name: Print dependencies run: | uv run llama stack list-deps ${{ matrix.distro }} - name: Install Distro using llama stack list-deps 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 list-deps ${{ matrix.distro }} | xargs -L1 uv pip install - name: Print dependencies in the image if: matrix.image-type == 'venv' run: | uv pip list show-single-provider: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install dependencies uses: ./.github/actions/setup-runner - name: Show a single provider run: | USE_COPY_NOT_MOUNT=true LLAMA_STACK_DIR=. uv run llama stack list-deps --providers inference=remote::ollama list-deps-from-config: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install dependencies uses: ./.github/actions/setup-runner - name: list-des from Config env: USE_COPY_NOT_MOUNT: "true" LLAMA_STACK_DIR: "." run: | uv run llama stack list-deps llama_stack/distributions/ci-tests/build.yaml