feature/spi-jpa-module #9

Merged
jbwittner merged 19 commits from feature/spi-jpa-module into develop 2026-06-04 15:50:11 +00:00
Owner
No description provided.
Introduces the spi-jpa module with Spring Data JPA, Flyway, and
PostgreSQL driver. Imports the testcontainers-bom explicitly since
Spring Boot 4.x BOM sub-imports are not transitive in Maven.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a placeholder JPA entity with UUID primary key (GenerationType.UUID),
its JpaRepository, and the initial Flyway migration V1 that creates
the example table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Uses a minimal @SpringBootApplication entry point (required since
@DataJpaTest was removed in Spring Boot 4.x) and a PostgreSQLContainer
via @ServiceConnection to verify save and retrieval against a real
postgres:18 database.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds spi-jpa as a dependency, configures the datasource/JPA/Flyway
in application.yaml, and makes the context test use a Testcontainers
PostgreSQL container so it keeps passing without a running database.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds infrastructure/spi-jpa to the test matrix in ci-feature.yaml and
as a sequential step in ci-develop.yaml. Mounts /var/run/docker.sock
in the Nix test containers so Testcontainers can reach the host daemon.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
chore: add compose.yaml for local dev environment
Some checks failed
CI — feature branches / Build & Check (push) Successful in 1m6s
CI — feature branches / Tests — domain (push) Successful in 30s
CI — feature branches / Tests — application (push) Failing after 31s
CI — feature branches / Tests — infrastructure/api-rest (push) Successful in 44s
CI — feature branches / Tests — infrastructure/spi-jpa (push) Failing after 1m43s
CI — feature branches / Docker Build (push) Has been skipped
2fc4a504c5
Starts a postgres:18 container with credentials matching application.yaml.
Volume is mounted at /var/lib/postgresql (not /data) as required by the
PostgreSQL 18 Docker image which places data in /var/lib/postgresql/18/docker.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each matrix test job now runs install -DskipTests before running
the module tests. The named volume between build-and-check and test
jobs is not guaranteed to be populated, so each test job installs
all local modules itself to avoid missing artifact errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This reverts commit aec8bab0bd.
ci: use -Dmaven.test.skip=true in build step
Some checks failed
CI — feature branches / Build & Check (push) Successful in 1m3s
CI — feature branches / Tests — domain (push) Successful in 32s
CI — feature branches / Tests — application (push) Failing after 33s
CI — feature branches / Tests — infrastructure/api-rest (push) Successful in 47s
CI — feature branches / Tests — infrastructure/spi-jpa (push) Failing after 1m47s
CI — feature branches / Docker Build (push) Has been skipped
f487325e0f
-DskipTests skips test execution but still compiles test code. If test
code fails to compile (e.g. a missing annotation), the build step fails
and spi-jpa is not installed to the cache, causing dependent modules to
fail with artifact-not-found.

-Dmaven.test.skip=true skips both compilation and execution, so the
build step only validates that production code compiles and all modules
are installable. Test compilation and execution happen exclusively in
the dedicated test steps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: replace test matrix with sequential steps in feature workflow
Some checks failed
CI — feature branches / Build & Check (push) Successful in 1m4s
CI — feature branches / Tests (push) Failing after 2m3s
CI — feature branches / Docker Build (push) Has been skipped
38630edbdb
A single job with one step per module mirrors the develop workflow and
avoids cross-job artifact resolution issues entirely since all steps
share the same container and Maven cache.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: disable Ryuk and remove docker socket mount
Some checks failed
CI — feature branches / Build & Check (push) Successful in 1m6s
CI — feature branches / Tests (push) Failing after 1m24s
CI — feature branches / Docker Build (push) Has been skipped
adc992dedf
The runner uses Docker-in-Docker (tcp://docker-in-docker:2375), not
the host socket. Ryuk (the Testcontainers resource reaper) fails in
DinD environments because it cannot connect back to itself. Disabling
it via TESTCONTAINERS_RYUK_DISABLED=true is the standard fix.

The /var/run/docker.sock volume mount is also removed since DinD is
already wired at the runner level and the socket was never used.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: pin Maven local repo to /root/.m2/repository via MAVEN_OPTS
All checks were successful
CI — feature branches / Build & Check (push) Successful in 34s
CI — feature branches / Tests (push) Successful in 1m2s
CI — feature branches / Docker Build (push) Successful in 3m56s
3de997e214
nix develop may alter the effective HOME between invocations, causing
Maven to resolve its local repository at a path that differs from the
mounted maven-cache volume. Forcing -Dmaven.repo.local=/root/.m2/repository
in MAVEN_OPTS on every job ensures the install and test steps always
read from and write to the same volume-backed path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: replace Nix with maven:3-eclipse-temurin-25
Some checks failed
CI — feature branches / Tests (push) Has been cancelled
CI — feature branches / Docker Build (push) Has been cancelled
CI — feature branches / Build & Check (push) Has been cancelled
33bb9d4200
Nix added overhead (flake evaluation, HOME side-effects, /bin/sh
workaround) without providing value in CI where the environment only
needs Java 25 and Maven. The official Maven image ships both and is
predictable.

Removed: nixos/nix image, nix-store volume, NIX_CONFIG env var, nix
develop wrapper in the mvn action.
Kept: maven-cache volume, MAVEN_OPTS repo pinning, TESTCONTAINERS_RYUK_DISABLED.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: remove MAVEN_OPTS
Some checks failed
CI — feature branches / Build & Check (push) Failing after 1s
CI — feature branches / Tests (push) Has been skipped
CI — feature branches / Docker Build (push) Has been skipped
4814846a51
No longer needed with the standard Maven image where HOME is stable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: remove empty env blocks
All checks were successful
CI — feature branches / Build & Check (push) Successful in 21s
CI — feature branches / Tests (push) Successful in 53s
CI — feature branches / Docker Build (push) Successful in 6s
6bc983420c
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ci: feature on PR→develop, develop on push to develop
All checks were successful
CI — feature branches / Docker Build (pull_request) Successful in 5s
CI — feature branches / Build & Check (pull_request) Successful in 21s
CI — feature branches / Tests (pull_request) Successful in 51s
8b9598c91a
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Dimitris made me do it
Some checks failed
CI — feature branches / Build & Check (pull_request) Successful in 21s
CI — feature branches / Tests (pull_request) Failing after 1m29s
CI — feature branches / Docker Build (pull_request) Has been skipped
2ae0fa1797
Revert "Dimitris made me do it"
All checks were successful
CI — feature branches / Tests (pull_request) Successful in 50s
CI — feature branches / Build & Check (pull_request) Successful in 21s
CI — feature branches / Docker Build (pull_request) Successful in 6s
e37fd96e0c
This reverts commit 2ae0fa1797.
jbwittner merged commit 422e9f216d into develop 2026-06-04 15:50:11 +00:00
jbwittner deleted branch feature/spi-jpa-module 2026-06-04 15:50:11 +00:00
jbwittner referenced this pull request from a commit 2026-06-04 15:50:12 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jbwittner/bankwiz_server!9
No description provided.