shivaansh0610-LUFFY opened a new pull request, #609:
URL: https://github.com/apache/fineract-backoffice-ui/pull/609
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!-- Commits must be signed to merge — see CONTRIBUTING.md#commit-signing if
you haven't set this up. -->
## What and why
<!-- One or two sentences explaining what changed and why. -->
Adds an `offline-build` CI job that verifies `npm run build --
--configuration production` succeeds without network access after `npm ci`.
Both steps run in the same pinned `node:24-alpine` environment used by the
release image builder, with the build executed using `--network none`, so
accidental build-time network fetches fail CI.
Closes #363
## Verification
<!-- List what you ran and what you checked. Note whether the UI was
exercised with mocks, a real Fineract backend, or both. -->
* YAML syntax validation passed.
* `actionlint` and `shellcheck` produced no new findings in the modified
workflow.
* Positive test: `npm ci` succeeded and the production build succeeded with
`--network none`.
* Negative test: restoring the Google Fonts `<link>` from #362 caused the
offline build to fail with the expected `fonts.googleapis.com` resolution error.
* `npm run ga:check` passed, including the new `offline-build-ci` gate; the
gate was also verified to fail when the `offline-build` job was absent.
* `npm run test:scripts`: 36/36 tests passed.
* `npm run format:check` passed after formatting the modified script.
* `bash scripts/check-license.sh` passed.
* No UI changes were made, so no UI/backend exercise was required.
## Screenshots
<!-- Add screenshots or a short recording for UI changes. Write "Not
applicable" for non-UI changes. -->
Not applicable.
## AI assistance (optional)
<!-- If generative AI materially assisted this contribution, optionally
state the tool or model and
the harness or workflow used. The contributor remains responsible for the
submitted change. -->
* Tool / model: Claude Sonnet 5
* Harness / workflow: Used for issue analysis, implementation review,
validation review, and PR description drafting.
## Checklist
<!-- Check each item, or explain why it does not apply. -->
* [ ] I did not hand-edit generated files under `src/app/api/`.
* [ ] New component or service code uses the adapter boundary in
`src/app/core/adapters/` instead of direct browser globals or imperative
third-party APIs.
* [ ] User-facing strings use translation keys.
* [ ] I added or updated tests appropriate to this change, or explained why
tests were not needed.
* [ ] UI workflow changes include suitable e2e coverage, including
real-backend testing where relevant.
* [ ] Commits are signed — see [[Commit
Signing](https://chatgpt.com/c/CONTRIBUTING.md#commit-signing)](CONTRIBUTING.md#commit-signing)
in CONTRIBUTING.md.
* [ ] I followed the [[AI-assisted contributions
guidance](https://chatgpt.com/c/CONTRIBUTING.md#ai-assisted-contributions)](CONTRIBUTING.md#ai-assisted-contributions).
Show less
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]