test: Angular matrix with consumer-build apps (full)#109
Closed
JuroUhlar wants to merge 3 commits into
Closed
Conversation
Replace the per-version workspace scaffolding approach with a declarative CI matrix that keeps the committed workspace and only swaps the installed Angular toolchain (core/common/cli/compiler-cli/ng-packagr) plus the version-matched TypeScript, zone.js and jest-preset-angular. Each matrix entry builds the library and runs the existing jest suite. Also add .node-version and an engines field for local Node consistency. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
Extends the version matrix with a consumer-compatibility check: build the publishable SDK package once (portable Angular Package Format output) and compile the committed demo app against that built package under its own Angular version. This catches breakage in a version's real project config and consumer API surface that the library-only build/unit job can miss. Point demo-angular21 at the built dist (matching tsconfig.test-dts.json) so it consumes the SDK the way a real npm consumer does. Add more versions by dropping in projects/demo-angular<NN> and a matrix entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
Adds a real, committed Angular 15 application that consumes the built SDK package via the NgModule API (FingerprintModule.forRoot) and FingerprintService. This covers the oldest supported version and the module-based consumer API surface that the standalone demo-angular21 (provideFingerprint) does not. Wired into the consumer-build matrix. Also ignore nested .angular/ build caches so generated artifacts are never committed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
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.
What
Full version of the Angular compatibility matrix. Builds on the simpler version-swap workflow (#108) by adding a consumer-compatibility check: compile real, committed Angular apps against the built SDK package.
Jobs
unit-and-build(×7) — swap the installed Angular toolchain in the committed workspace, thenng buildthe library and run jest, across Angular 15–21.build-package(×1) — build the publishable SDK once →dist. Angular Package Format output is partial-Ivy and portable, so one build serves every consumer version.consumer-build(×2) — download the built package and compile committed demo apps against it under their own Angular version:demo-angular15— NgModule API (FingerprintModule.forRoot), oldest supported version.demo-angular21— standalone API (provideFingerprint), newest version.This compiles both consumer API surfaces against the real built artifact — verification that #85's generated-but-never-built demo scaffolding never actually performed.
Notes
demo-angular21now consumes the builtdist(matchingtsconfig.test-dts.json) so it behaves like a real npm consumer.distbuilds, and both demo apps compile against it.🤖 Generated with Claude Code
https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
Generated by Claude Code