ci: add Cassandra CI workflow and test runner - #373
Conversation
| 's/^authenticator: .*/authenticator: PasswordAuthenticator/' \ | ||
| /etc/cassandra/cassandra.yaml | ||
| docker restart ${{ job.services.cassandra.id }} | ||
| for i in $(seq 1 30); do |
There was a problem hiding this comment.
Post-restart wait may be too short. docker restart resets the startup clock, and this loop allows 30×2s = 60 seconds. Cassandra on a loaded shared runner can exceed that, and a timeout here fails the job before any test runs. Can give it 3 - 5 minutes. (Same loop at lines 116 and 166.)
| runs-on: ubuntu-latest | ||
| services: | ||
| cassandra: | ||
| image: cassandra:4.1 |
There was a problem hiding this comment.
cassandra:4.1 is a mutable tag. Can pin by digest, matching #345, could also be a follow up later
There was a problem hiding this comment.
If it's okay, I'm going to defer this, in part because I'm not sure that the trade-offs are a net positive. I get the benefit for test repeatability, but I'm less sold on the cost of being locked to an arbitrary tag, which our consumers may or may not be.
| --health-retries 20 | ||
| --health-start-period 60s | ||
| steps: | ||
| - uses: actions/checkout@v6 |
There was a problem hiding this comment.
Action pins are floating (@v6, @stable, @v2, @v5). Consistent with integration-mongodb.yml, but the release workflows pin by SHA; the integration workflows are the outliers, though not blocking
What
Adds a workflow and test runner for running ExtendDB integration tests against the Cassandra backend.
Why
To support merging the Cassandra backend into ExtendDB/main (PR338).
Testing done
Ran the scripts locally on my desktop: the github workflow itself hasn't been exercised but closely parallels those for PostgreSQL and MongoDB.
Checklist
cargo test --workspace)cargo fmt --check)cargo clippy -- -W clippy::pedantic)Storagetrait, auth model, on-diskformat, or public CLI surface, an RFC has been accepted or is linked
below. Otherwise, an ADR captures the decision (link below).
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache License 2.0 and I agree to the Developer Certificate of
Origin (DCO). See CONTRIBUTING.md for details.