Skip to content

Devops/integration testing - #34

Draft
adamkorynta wants to merge 16 commits into
mainfrom
devops/integration_testing
Draft

adamkorynta wants to merge 16 commits into
mainfrom
devops/integration_testing

Conversation

@adamkorynta

Copy link
Copy Markdown
Member

No description provided.

@adamkorynta
adamkorynta force-pushed the devops/integration_testing branch from 4cb9b13 to 36ece6a Compare September 11, 2026 23:21
update to prefix "apikey"

add debug capabilities for remote JVM debugging

update gradle test harness to supply JDK and override testcontainers

add support to pull out flow group timeseries in expander

more updates to integration test harness

add in more extensive data coverage

add test plumbing, still need to finalize seeed data

setup integration testing structure
@adamkorynta
adamkorynta force-pushed the devops/integration_testing branch from 36ece6a to 887dc6c Compare September 11, 2026 23:22
Gate flow tests were passing vacuously: every computeFlowGroup call logged
"Unable to compute flow group" because cda-etl published location groups
before the project locations existed, and the output series were
pre-seeded with the expected values.

- run_regi_calculation now fails the test on any ERROR-level REGI log
- gate flow cases clear their output window before running
- pin cda-etl to 16219ad9b9a7 (publishes location groups after projects)
- FLOW_GROUPS entries are project-aware; add FCOB Uncontrolled_Total
  (synthetic elevations above the 1354.8 ft crest, expected flows computed
  from the rating) and KEYS TainterGate_Total
- register the new REGI-Test-Expected series in regi.yml/regi.generated.yml
- update README coverage notes
…rating seeds

- regi-tools 10.0.0 -> 10.0.1 (executor monitor thread no longer blocks JVM
  shutdown) and regi 99.local-SNAPSHOT -> 3.5.0-alpha003
- pin cda-etl to 60d50c155aceeaede945a36406a800c0581b9d7a (Feature/etl
  milestone 4, publishes location groups after projects)
- add the FCOB conduit/low-flow gate and WEBB spillway gate rating files that
  regi.yml already references
Runs `./gradlew :integration-tests:integrationTest` on demand and on pull
requests touching the integration tests, regi-headless, or the build files.
The cda_stack fixture brings up docker and seeds the stack, so the job only
frees disk, sets up Java/Gradle, and runs the task. A follow-up step fails
the job if no test passed or if any test was skipped for an environment
reason (docker/compose/package missing), since the fixture turns those into
skips. JUnit XML, docker compose logs, and the REGI log are uploaded.
Resolve regi-headless/build.gradle: keep the versionless python-plugin id
(version is managed in the catalog) and apply the 3.2.26 bump from main to
gradle/libs.versions.toml.
…re logs

The CI run failed seeding: every cda-etl property POST got Tomcat's HTML 404.
The data-api healthcheck was `curl -I` without -f, which exits 0 for any HTTP
response, so compose reported healthy before the cwms-data webapp had
deployed.

- healthcheck: curl -fsS so an HTTP error means unhealthy
- pin data-api to 2026.10.20-testa (the build `latest` resolved to) instead of
  the moving `latest` tag
- conftest dumps compose logs to $CDA_COMPOSE_LOG before teardown, since
  compose.stop() removes the containers; the workflow sets it and drops the
  post-run collection step that always came back empty
…ilable

Integration tests only run when explicitly selected (-m integration), so a
missing prerequisite or a failed docker bring-up is an error, not a skip. The
previous CI run came back "green" at the Gradle step with every test skipped
and no explanation.

- conftest: docker/compose/daemon checks, the cda_stack bring-up, and the
  cwms/regi_python imports now fail; the bring-up error includes compose's
  stdout/stderr and dumps container logs to $CDA_COMPOSE_LOG first
- workflow: drop the skip-guard step, which pytest's exit code now covers
- README: document the failure behavior and CDA_COMPOSE_LOG
- remove the skipped EUFA Uncontrolled_Total case from test_gate_flow_calc.py
  (its CLOB has no output configured); FCOB's Uncontrolled_Total covers the
  group
- README: link to the files and directories it mentions, drop the
  Keycloak/traefik wording (keeping the API-key note), remove exact version
  pins (docker-compose.yml/.env.example are the source of truth), and remove
  the coverage-status and "things verified" sections
…DME by audience

CI failed because data-api started while Oracle's listener was up but the
FREEPDB1 service wasn't registered yet (tnsping passes at that point), so its
connection pool failed with ORA-12514 and never recovered; compose then
reported data-api unhealthy and every test errored at setup.

- db healthcheck now logs in through the listener to FREEPDB1 (sqlplus
  select 1) instead of tnsping, and polls every 10s
- README split into "Writing and running tests" (for engineers adding
  coverage and seed data) and "How the harness works" (for developers), and
  documents why the db and data-api healthchecks must be strict
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