Skip to content

WEB-1184: [CI/CD] Add a nightly Fineract drift canary - #3917

Draft
devvaansh wants to merge 1 commit into
openMF:devfrom
devvaansh:WEB-1184-nightly-fineract-drift-canary
Draft

WEB-1184: [CI/CD] Add a nightly Fineract drift canary#3917
devvaansh wants to merge 1 commit into
openMF:devfrom
devvaansh:WEB-1184-nightly-fineract-drift-canary

Conversation

@devvaansh

@devvaansh devvaansh commented Aug 26, 2026

Copy link
Copy Markdown
Member

Draft. This depends on WEB-1180 (open, #3914) and on the flake-visibility work that hasn't been built yet. Details in Dependencies below.

Description

WEB-1180 (#3914) pins Fineract to an immutable digest, which fixes reproducibility — but a pin defers upgrade pain rather than removing it. Nothing notices when the pinned build falls behind upstream, so the cost surfaces all at once at the next manual bump, including the exact defect class that motivated the pin (a stretchy report shipped without its stretchy_report_parameter row, which surfaces as a 403 → failed route resolver → redirect to #/, nowhere near the spec that goes red).

This adds .github/workflows/e2e-nightly.yml — a scheduled job that deliberately runs the E2E suite against a moving tag, in a job that is allowed to fail, so drift is caught continuously instead of by accident inside someone's PR.

Two signals from one run:

  1. Upstream drift — fails here but passes on the pinned digest ⇒ Fineract changed under us and the next bump will break.
  2. A real flake — fails on both ⇒ Playwright E2E's --retries=2 has been masking it.

To make signal 2 meaningful the canary runs with --retries=0. Retries exist to keep PRs unblocked; here they'd hide the thing we're looking for.

Design notes worth reviewing:

  • Separate concurrency group. playwright.yml uses e2e-${{ github.ref }} with cancel-in-progress: true. A scheduled run and a push to dev both resolve to refs/heads/dev, so sharing that group would let the canary cancel the required Playwright E2E check — or be cancelled by it. This uses group: e2e-nightly, cancel-in-progress: false.
  • Records the resolved digest before running. The point of a canary is knowing which upstream build broke us, so the digest goes into the job summary up front.
  • The steps mirror playwright.yml deliberately. A canary that boots differently from the real job produces readiness failures that look like drift. The duplication is real and I'd rather not keep it — the natural place to fix it is the health-gate de-duplication work, which should fold this job in rather than leaving a fourth copy of the readiness ceremony.
  • workflow_dispatch takes a fineract_image input so the override can be exercised manually rather than waiting for 02:00 UTC.

Related issues and discussion

WEB-1184

Screenshots, if any

N/A — CI workflow addition, no UI surface.

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • If you have multiple commits please combine them into one commit by squashing them.

  • Read and understood the contribution guidelines at web-app/.github/CONTRIBUTING.md.

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • .github/workflows/e2e-nightly.yml is excluded by !.github/** and included by **/*

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 7b4829e8-f9c9-43eb-83d7-bbd66505afef

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "pre_merge_checks"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devvaansh
devvaansh marked this pull request as ready for review September 1, 2026 01:57
@devvaansh
devvaansh requested a review from a team September 1, 2026 01:57
@devvaansh
devvaansh marked this pull request as draft September 1, 2026 01:57
@IOhacker

IOhacker commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

@devvaansh tell us if there is any dependency or blocker in order to be solved for moving the PR to ready for review

@devvaansh

Copy link
Copy Markdown
Member Author

@devvaansh tell us if there is any dependency or blocker in order to be solved for moving the PR to ready for review.

@IOhacker still blocked on the dependency PR , it isn't open yet, I'll put it up this weekend and flip this to ready once it's in.

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.

2 participants