.busbar-ref: repin to busbar dev's current green head #75
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Calls the canonical plugin-ci reusable workflow (GetBusbar/busbar/.github/workflows/plugin-ci.yml) | |
| # instead of hand-copying build/test/signoff steps here — see that file for what actually runs. | |
| # | |
| # busbar-store-valkey (the real logic crate) now lives IN THIS REPO (the store-valkey/ subdirectory, | |
| # a same-repo sibling of store-valkey-plugin/ — see this repo's root Cargo.toml), not in busbarAI, so | |
| # the `ci` job below has no extra sibling-TEST command to run: the reusable workflow's own | |
| # `cargo test` step (working-directory: plugin, i.e. this checkout's root) already exercises | |
| # busbar-store-valkey's own unit tests plus store-valkey-plugin's real dlopen ABI e2e test against the | |
| # `valkey` service container above, because `cargo test` on a virtual workspace with no | |
| # default-members runs every member by default. This crate's `busbar-api` dependency is STILL a | |
| # sibling path dependency into busbarAI though (INTERIM until busbarAI is public) — both jobs below | |
| # need their own busbarAI checkout for that reason. | |
| name: ci | |
| env: | |
| # Same BUSBAR_REF convention ci.yml/release.yml elsewhere establish for the sibling path | |
| # dependency (busbar-api) this crate needs — INTERIM until busbarAI is public. Update to `main` | |
| # once busbar 1.5.0 ships. Repointed from the stale `1.5.0-dev` (which predates this cycle's | |
| # generic-credentials redesign entirely) to `dev`, where that redesign actually landed. | |
| # | |
| # base_ref FIRST, for the same reason the `ci` job below spells it that way: on a pull_request | |
| # event `github.ref_name` is '<number>/merge', which is not a branch name in ANY repository, so | |
| # the migrate-destructive-wipe-test job's sibling checkout asked GetBusbar/busbar for a branch | |
| # literally called '4/merge' and `git fetch` died with a bare exit code 1 on EVERY pull request | |
| # to this repo. base_ref is the branch the PR targets (dev/qa/main) and is empty on push, where | |
| # ref_name is already the branch, so this keeps the same-branch intent on both event types. | |
| BUSBAR_REF: ${{ github.base_ref || github.ref_name }} | |
| on: | |
| push: | |
| branches: [main, dev, qa] | |
| pull_request: | |
| branches: [main, dev, qa] | |
| # Manual trigger. Needed because `gh run rerun` PINS the reusable-workflow SHA: | |
| # a rerun re-uses the plugin-ci.yml snapshot from the original run, so a fix landing in | |
| # core's reusable workflow can only be picked up by a NEW run, never by rerunning an old one. | |
| workflow_dispatch: {} | |
| jobs: | |
| ci: | |
| uses: GetBusbar/busbar/.github/workflows/plugin-ci.yml@dev | |
| with: | |
| plugin_crate: busbar-store-valkey-plugin | |
| plugin_kind: store | |
| plugin_alias: valkey | |
| service: valkey | |
| # UNPINNED from `feat/1.5.5-mcp-integrated` on merge to dev: that pin existed only because | |
| # core `dev` did not yet carry the durable MCP tool-call log contract, and the pin's own note | |
| # said to move back to the branch ref once that line merged. Core dev now exports all four | |
| # methods (append_mcp_call / list_mcp_calls / list_mcp_call_principals / | |
| # purge_mcp_calls_before), so the precondition is met and CI tracks the branch again. | |
| busbar_ref: ${{ github.base_ref || github.ref_name }} | |
| # base_ref FIRST: on a pull_request `github.ref_name` is '<number>/merge', not a branch | |
| # name, so this asked busbar for a branch called '5/merge' and the sibling checkout died | |
| # with an unreadable git error on EVERY pull request to this repo. | |
| # migrate()'s destructive-wipe test (store-valkey/src/tests.rs) SCAN+DELETEs the ENTIRE busbar:* | |
| # namespace on whatever live Valkey VALKEY_URL points at — it is #[ignore]'d and must run ALONE, | |
| # never concurrently with the `ci` job's own tests against the same shared service container (see | |
| # that test's own doc comment for the full rationale). It runs here, in its own isolated job | |
| # against its own dedicated valkey/valkey:8 service container. | |
| migrate-destructive-wipe-test: | |
| name: migrate() destructive-wipe test (isolated, own valkey/valkey:8 container) | |
| runs-on: ubuntu-latest | |
| services: | |
| valkey: | |
| image: valkey/valkey:8 | |
| ports: | |
| - 6379:6379 | |
| # Runs INSIDE the container (it has its own valkey-cli — the runner does not); GitHub | |
| # Actions blocks the job's steps from starting until this reports healthy, so no separate | |
| # manual "wait for valkey" step is needed or correct here (mirrors plugin-ci.yml's own valkey | |
| # service block). | |
| options: >- | |
| --health-cmd "valkey-cli ping" --health-interval 5s --health-timeout 5s --health-retries 10 | |
| steps: | |
| - name: Checkout store-valkey | |
| uses: actions/checkout@v7 | |
| with: | |
| path: store-valkey-repo | |
| - name: Checkout busbar (sibling path dependency) | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: GetBusbar/busbar | |
| ref: ${{ env.BUSBAR_REF }} | |
| path: busbarAI | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: cargo test -p busbar-store-valkey -- --ignored wipes_the_entire_namespace_destructively | |
| working-directory: store-valkey-repo/store-valkey | |
| env: | |
| VALKEY_URL: redis://localhost:6379/0 | |
| run: cargo test -- --ignored --test-threads=1 wipes_the_entire_namespace_destructively |