Repository navigation
Add GitHub Actions CI and mocked-AWS CD pipelines - #32
devin-ai-integration[bot] wants to merge 3 commits into
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Runtime verification — app unaffected by the CI/CD-only changesThis PR touches only Golden path: login → entity list → entity detailLogged in via the UI with Entities → Bank Account renders 10 seeded rows from the backend API. Clicking View on row 1 loads Backend health & admin Health page
Administration → Health: Database, Disk space, Liveness state, Application, Readiness state, SSL all UP. Other checks
No failures observed. |
Summary
The repo had no
.github/directory (workflows were removed at import). This adds a standard CI pipeline plus a demo CD pipeline that is wired for AWS but cannot deploy anywhere, driven by the repo's actual tooling (mvnw,npmw/npm scripts, Jib frompom.xml, Java 21, Node 24.13.0).CI (
.github/workflows/ci.yml) — push tomain+ PRs,concurrencycancel-in-progress,permissions: contents: read, all actions SHA-pinned, Maven/npm caching, nocontinue-on-error:backend:./mvnw -Pprod -Dskip.installnodenpm -Dskip.npm verify(frontend skipped — it's the other job's concern); uploads surefire/failsafe/JaCoCo reports.frontend:npm ci→lint→npm test(Vitest + coverage) →webapp:build:prod; uploadstarget/test-results.code-quality:prettier:check,checkstyle:check(nohttp),javadoc:javadoc, andactionlintover the workflow files.CD (
.github/workflows/cd.yml) — push tomain+workflow_dispatch(environment: staging|production);configure → build-image (Jib) → deploy-staging → deploy-production, staging/production as GitHub Environments (approval gate = required reviewers onproduction), AWS auth exclusively via OIDC (configure-aws-credentials+id-token: write, no long-lived keys).The safety mechanism is a single resolved flag rather than per-step guessing:
All AWS identifiers are fake defaults supplied through
vars.*(account123456789012, rolearn:aws:iam::123456789012:role/gha-deploy-ts-java-angular-jhipster, ECRdemo/jhipster-sample-application, clustersdemo-staging/demo-prod), so out of the box the image is built to a local tarball artifact and the deploy jobs only print a plan — no ECR push, no ECS API call. Setting a realAWS_ACCOUNT_IDis what arms the pipeline.Also adds
.github/dependabot.yml(Maven, npm with Angular packages grouped, github-actions — weekly) anddocs/CICD.mddocumenting the jobs, the variable table with mock defaults, and the go-live checklist.Validation (run locally in the sandbox)
actionlintv1.7.12 on both workflows — clean./mvnw -Pprod -Dskip.installnodenpm -Dskip.npm verify— 163 tests, BUILD SUCCESSnpm run lint,npm test,npm run webapp:build:prod,npm run prettier:check— all pass./mvnw -Pprod -DskipTests verify jib:buildTar(the CD dry-run path) — producedtarget/jib-image.tarNot runnable here: the AWS-armed branches of the CD workflow (OIDC assumption, ECR push, ECS deploy) — they are guarded off by design and have no real account behind them.
Link to Devin session: https://partner-workshops.devinenterprise.com/sessions/ebe6570dc6c043d69c8747f605e03684