llama-stack-mirror/.github/workflows
Ashwin Bharambe 2c43285e22
feat(stores)!: use backend storage references instead of configs (#3697)
**This PR changes configurations in a backward incompatible way.**

Run configs today repeat full SQLite/Postgres snippets everywhere a
store is needed, which means duplicated credentials, extra connection
pools, and lots of drift between files. This PR introduces named storage
backends so the stack and providers can share a single catalog and
reference those backends by name.

## Key Changes

- Add `storage.backends` to `StackRunConfig`, register each KV/SQL
backend once at startup, and validate that references point to the right
family.
- Move server stores under `storage.stores` with lightweight references
(backend + namespace/table) instead of full configs.
- Update every provider/config/doc to use the new reference style;
docs/codegen now surface the simplified YAML.

## Migration

Before:
```yaml
metadata_store:
  type: sqlite
  db_path: ~/.llama/distributions/foo/registry.db
inference_store:
  type: postgres
  host: ${env.POSTGRES_HOST}
  port: ${env.POSTGRES_PORT}
  db: ${env.POSTGRES_DB}
  user: ${env.POSTGRES_USER}
  password: ${env.POSTGRES_PASSWORD}
conversations_store:
  type: postgres
  host: ${env.POSTGRES_HOST}
  port: ${env.POSTGRES_PORT}
  db: ${env.POSTGRES_DB}
  user: ${env.POSTGRES_USER}
  password: ${env.POSTGRES_PASSWORD}
```

After:
```yaml
storage:
  backends:
    kv_default:
      type: kv_sqlite
      db_path: ~/.llama/distributions/foo/kvstore.db
    sql_default:
      type: sql_postgres
      host: ${env.POSTGRES_HOST}
      port: ${env.POSTGRES_PORT}
      db: ${env.POSTGRES_DB}
      user: ${env.POSTGRES_USER}
      password: ${env.POSTGRES_PASSWORD}
  stores:
    metadata:
      backend: kv_default
      namespace: registry
    inference:
      backend: sql_default
      table_name: inference_store
      max_write_queue_size: 10000
      num_writers: 4
    conversations:
      backend: sql_default
      table_name: openai_conversations
```

Provider configs follow the same pattern—for example, a Chroma vector
adapter switches from:

```yaml
providers:
  vector_io:
  - provider_id: chromadb
    provider_type: remote::chromadb
    config:
      url: ${env.CHROMADB_URL}
      kvstore:
        type: sqlite
        db_path: ~/.llama/distributions/foo/chroma.db
```

to:

```yaml
providers:
  vector_io:
  - provider_id: chromadb
    provider_type: remote::chromadb
    config:
      url: ${env.CHROMADB_URL}
      persistence:
        backend: kv_default
        namespace: vector_io::chroma_remote
```

Once the backends are declared, everything else just points at them, so
rotating credentials or swapping to Postgres happens in one place and
the stack reuses a single connection pool.
2025-10-20 13:20:09 -07:00
..
changelog.yml chore(github-deps): bump actions/checkout from 4.2.2 to 5.0.0 (#3178) 2025-08-20 16:51:40 -07:00
conformance.yml feat(api)!: BREAKING CHANGE: support passing extra_body through to providers (#3777) 2025-10-10 16:21:44 -07:00
install-script-ci.yml chore: use dockerfile for building containers (#3839) 2025-10-20 10:23:01 -07:00
integration-auth-tests.yml feat(stores)!: use backend storage references instead of configs (#3697) 2025-10-20 13:20:09 -07:00
integration-sql-store-tests.yml fix(ci): make all CI workflows have the correct concurrency defn 2025-08-21 16:05:25 -07:00
integration-tests.yml feat(ci): enable docker based server tests (#3833) 2025-10-17 09:19:25 +02:00
integration-vector-io-tests.yml refactor(build): rework CLI commands and build process (1/2) (#2974) 2025-10-17 19:52:14 -07:00
pre-commit.yml fix: Improve pre-commit workflow error handling and feedback (#3400) 2025-09-12 11:10:59 +02:00
precommit-trigger.yml chore(github-deps): bump actions/github-script from 7.0.1 to 8.0.0 (#3685) 2025-10-05 21:20:00 -07:00
providers-build.yml chore: use dockerfile for building containers (#3839) 2025-10-20 10:23:01 -07:00
providers-list-deps.yml refactor(build): rework CLI commands and build process (1/2) (#2974) 2025-10-17 19:52:14 -07:00
python-build-test.yml chore(github-deps): bump astral-sh/setup-uv from 6.8.0 to 7.0.0 (#3782) 2025-10-11 14:14:43 -07:00
README.md refactor(build): rework CLI commands and build process (1/2) (#2974) 2025-10-17 19:52:14 -07:00
record-integration-tests.yml feat(tests): make inference_recorder into api_recorder (include tool_invoke) (#3403) 2025-10-09 14:27:51 -07:00
semantic-pr.yml chore(github-deps): bump amannn/action-semantic-pull-request from 6.1.0 to 6.1.1 (#3248) 2025-08-25 17:34:17 +02:00
stale_bot.yml chore(github-deps): bump actions/stale from 10.0.0 to 10.1.0 (#3684) 2025-10-08 12:16:54 +02:00
test-external-provider-module.yml chore: use dockerfile for building containers (#3839) 2025-10-20 10:23:01 -07:00
test-external.yml chore: use dockerfile for building containers (#3839) 2025-10-20 10:23:01 -07:00
ui-unit-tests.yml chore(github-deps): bump actions/setup-node from 4.4.0 to 5.0.0 (#3353) 2025-09-08 10:05:00 +02:00
unit-tests.yml fix(ci): make all CI workflows have the correct concurrency defn 2025-08-21 16:05:25 -07:00

Llama Stack CI

Llama Stack uses GitHub Actions for Continuous Integration (CI). Below is a table detailing what CI the project includes and the purpose.

Name File Purpose
Update Changelog changelog.yml Creates PR for updating the CHANGELOG.md
API Conformance Tests conformance.yml Run the API Conformance test suite on the changes.
Installer CI install-script-ci.yml Test the installation script
Integration Auth Tests integration-auth-tests.yml Run the integration test suite with Kubernetes authentication
SqlStore Integration Tests integration-sql-store-tests.yml Run the integration test suite with SqlStore
Integration Tests (Replay) integration-tests.yml Run the integration test suites from tests/integration in replay mode
Vector IO Integration Tests integration-vector-io-tests.yml Run the integration test suite with various VectorIO providers
Pre-commit pre-commit.yml Run pre-commit checks
Pre-commit Bot precommit-trigger.yml Pre-commit bot for PR
Test Llama Stack Build providers-build.yml Test llama stack build
Test llama stack list-deps providers-list-deps.yml Test llama stack list-deps
Python Package Build Test python-build-test.yml Test building the llama-stack PyPI project
Integration Tests (Record) record-integration-tests.yml Run the integration test suite from tests/integration
Check semantic PR titles semantic-pr.yml Ensure that PR titles follow the conventional commit spec
Close stale issues and PRs stale_bot.yml Run the Stale Bot action
Test External Providers Installed via Module test-external-provider-module.yml Test External Provider installation via Python module
Test External API and Providers test-external.yml Test the External API and Provider mechanisms
UI Tests ui-unit-tests.yml Run the UI test suite
Unit Tests unit-tests.yml Run the unit test suite