Skip to content

ci: run integration tests in GitHub Actions - #109

Open
aalvaropc wants to merge 3 commits into
mainfrom
ci/integration-tests
Open

ci: run integration tests in GitHub Actions#109
aalvaropc wants to merge 3 commits into
mainfrom
ci/integration-tests

Conversation

@aalvaropc

Copy link
Copy Markdown
Owner

What changed

Added an integration job to the CI workflow that runs mix test --only integration against a postgres:17 service, reusing the same deps/_build cache key as the main test job.

Why

The four integration modules (pg_introspector_test, catalog/sync_worker_test, data_sources/connection_tester_test, querying/executor_test) are tagged :integration and excluded by test/test_helper.exs, so everything that touches a real PostgreSQL (introspection, catalog sync, connection testing, the query executor with its timeouts and cancellation) had zero CI coverage — a regression there would only surface when someone remembered to run make test.integration locally.

A separate job keeps the fast suite's feedback loop independent: a slow or flaky integration run never delays the unit/credo/format signal.

No second database container is needed: the integration tests build their data sources from the Onesqlx.Repo config, pointing at the test database itself.

How to test

  • CI on this PR should show both jobs green (Build & Test and Integration Tests).
  • Locally: make test.integration — passes (7 integration tests, 0 failures).

Pin erlang 27.1.2 and nodejs 22.23.2 in .tool-versions (the previous
exact pins 27.1 / 22.20.0 are no longer installable via asdf), and
align the Dockerfile builder image and CI OTP_VERSION with the same
Erlang patch release so local, CI, and release builds use one toolchain.

Add `npm ci` to the assets.setup alias: mix setup only installed the
tailwind/esbuild binaries, so a fresh clone failed at assets.build with
unresolved CodeMirror imports.

Remove assets/tsconfig.json, orphan config with no TypeScript sources.
The four integration modules (pg_introspector, catalog sync worker,
connection tester, query executor) are tagged :integration and excluded
from the default suite, so the code paths that touch a real PostgreSQL
had no CI coverage at all. Add a separate `integration` job that reuses
the deps cache and runs `mix test --only integration` against the same
postgres:17 service; a separate job keeps the fast suite's feedback
independent. No second database container is needed: the integration
tests point their data sources at the test database itself.
@gitguardian

gitguardian Bot commented Aug 13, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
21410584 Triggered Generic Password 40adcf9 .github/workflows/ci.yml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

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