Skip to content

Merge main into dev: same fixes landed twice, resolved toward the pro… #65

Merge main into dev: same fixes landed twice, resolved toward the pro…

Merge main into dev: same fixes landed twice, resolved toward the pro… #65

Workflow file for this run

# 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
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