Put both halves in one branch, keep the deployments independent - #131
Merged
Conversation
main carried the API; frontend carried the Angular app AND a full copy of the API source - 43 duplicated C# files, 5 duplicated workflow files, and a whole workflow (branch-isolation.yml) whose only job was policing the split. That duplication had already cost something real: the two branches drifted onto different codeql-action versions, and because Dependabot ignore rules and ecosystems are per-entry, the frontend branch's NuGet packages were never scanned at all until this week. The branch split was never what kept the deployments independent - the path filters do that, and they work the same on one branch as on two: lottery-web/** -> deploys the site, never the API src/** -> deploys the API, never the site docs, *.md -> builds nothing, deploys nothing Verified by simulating the filters against representative change sets. Also: - codeql.yml becomes a two-language matrix (csharp + javascript-typescript) rather than two files that could drift apart again - docs are excluded from push builds. On "push" only: "pull_request" stays unfiltered, because a required status check that is SKIPPED never reports and would block the pull request forever - dependabot.yml drops from 5 entries to 3, with no target-branch - branch-isolation.yml deleted Verified in the merged tree: locked restore clean, build with zero warnings, 321 backend tests, 105 frontend specs at 100% lines, ng build and check:swa both pass. The frontend branch is deliberately left untouched as a rollback. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AWkVh7cyAz1gWapBH1CY8n
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
maincarried the API.frontendcarried the Angular app and a full copy of the API source. That's what this removes.The duplication, measured
ci,codeql,gitleaks,dependency-review,branch-isolation)branch-isolation.yml)It had already cost something real. The two branches drifted onto different
codeql-actionversions, and because Dependabot ignore rules and ecosystems are per-entry, the frontend branch's NuGet packages were never scanned at all until this week.The key point
The branch split was never what kept the deployments independent — the path filters do that, and they work identically on one branch:
lottery-web/**onlysrc/**only*.mdonlyVerified by simulating GitHub's path matching against the real filters, not by assuming.
Also in here
codeql.ymlbecomes a two-language matrix (csharp+javascript-typescript) instead of two files that can drift apart again.fail-fast: falseso one language failing doesn't hide the other's results.pushonly —pull_requeststays unfiltered, because a required status check that is skipped never reports and would leave the PR blocked forever rather than passing.ci-frontend.ymlalready documented that reasoning.dependabot.yml: 5 entries → 3, notarget-branch. That per-entry duplication is exactly what caused the unscanned NuGet gap.branch-isolation.ymldeleted — nothing left to keep apart.Verification in the merged tree
dotnet restore --locked-modeclean ·dotnet build -warnaserrorzero warnings · 321 backend tests · 105 frontend specs, 100% lines ·ng build·check:swa(5 security headers, no inline script) ·npm auditclean.Rollback
The
frontendbranch is deliberately untouched. Nothing is deleted there by this PR. Merge this, watch both deploys behave, and only then delete it — or walk away and nothing is lost.After merging
Two follow-ups that need repo settings, not code:
Branch isolationis no longer a check, andAnalyze (csharp)becomesAnalyze (csharp)+Analyze (javascript-typescript).frontendbranch once you're satisfied.🤖 Generated with Claude Code