Skip to content

ci: run checks on pull requests into dev, including the integration suite - #37

Merged
fylorn merged 3 commits into
devfrom
ci/integration-tests
Sep 24, 2026
Merged

fylorn merged 3 commits into
devfrom
ci/integration-tests

Conversation

@fylorn

@fylorn fylorn commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

CI only triggered for main, so pull requests into dev merged with no checks at all; and even on main, the ~260 integration tests in crates/test-support/tests/ are #[ignore]d and never ran, so billing, cache, streaming and PII paths merged untested. (Replaces #35.)

  • CI now runs for pull requests into and pushes to dev as well as main. The image jobs keep their push to main gate, and now also wait for the integration job.
  • New Integration Tests job: Postgres 18 (--shm-size=1g; every test creates its own database), Redis 8 and ClickHouse 26.3 as services, then cargo nextest run -p think-watch-test-support --run-ignored only --profile ci. Separate from the unit job so a red check names the suite that broke.
  • .config/nextest.toml adds a ci profile: no fail-fast, 4 threads (a runner has 4 vCPUs), and a hung test is killed after 3 minutes.
  • The harness FLUSHDBs its Redis logical DB on every spawn, which is why make test-it runs one test at a time. Under nextest each running test now uses DB base + NEXTEST_TEST_GLOBAL_SLOT, so parallel tests no longer clear each other's state. Plain cargo test is unchanged.
  • Argon2, BLAKE2 and SHA-256 are optimised in dev/test builds. Every login hashes a password and grinds a proof-of-work; unoptimised, the suite took 612s in CI with the slowest test at 128s (near the kill limit). Now 234s, slowest 76s.

The first CI run: 260/260 passed; the second: 263/263.

🤖 Generated with Claude Code

fylorn and others added 3 commits September 24, 2026 14:30
Feature work lands on dev, and until now nothing checked it: CI only
triggered for main. The image build and publish jobs stay gated on a
push to main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The ~260 integration tests in crates/test-support/tests/ are #[ignore]d,
and CI never ran them. A new job starts Postgres (1GB /dev/shm), Redis
and ClickHouse as services and runs them with nextest.

The harness FLUSHDBs its Redis logical DB on every spawn, which is why
make test-it runs one test at a time. Under nextest each running test
now takes DB base + NEXTEST_TEST_GLOBAL_SLOT, so four can run at once
without clearing each other's state.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Each login in the integration suite runs Argon2 and grinds a SHA-256
proof-of-work, both unoptimised in a test build. In CI the login-heavy
tests took one to two minutes each, and the slowest (128s) was close to
the 180s kill limit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@fylorn
fylorn force-pushed the ci/integration-tests branch from 257cdf7 to 7c3bf24 Compare September 24, 2026 06:31
@fylorn fylorn changed the title ci: run the integration suite ci: run checks on pull requests into dev, including the integration suite Sep 24, 2026
@fylorn
fylorn marked this pull request as ready for review September 24, 2026 06:31
@fylorn
fylorn merged commit bd57b5d into dev Sep 24, 2026
6 checks passed
@fylorn
fylorn deleted the ci/integration-tests branch September 24, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant