chore: include playground in nx release pipeline#99
Merged
lukascivil merged 6 commits intomasterfrom Apr 24, 2026
Merged
Conversation
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.
Objective
Move the
playgrounddeployment out of the per-pushcd.ymlworkflow and into the release pipeline, and makeplaygrounda first-class project innx releaseso it is versioned, tagged, and changelogged alongside the publishable libraries. This ties the deployed playground to a released version ofjson-differenceinstead of whatever was last merged tomaster.What was done
.github/workflows/cd.yml: removed theBuild(playground) andDeploy Playground to Github Pagessteps so the continuous workflow no longer deploys the playground..github/workflows/release-and-publish.yml: added the GitHub Pages deploy step, gated bygithub.event.inputs.dry_run != 'true', so the playground is only published when a real release runs. Updated thedry_runinput description to reflect that it now also skips the playground deploy.nx.json: addedplaygroundtorelease.projectsso it participates in independent versioning/tagging/changelog with the other projects.libs/json-difference/project.json: setgeneratePackageJson: falseon bothbuildandbuild-browsertargets to stop@nx/vite:buildfrom emitting an autogeneratedpackage.jsoninto the output.libs/json-difference/vite.config.mts: replaced thenxViteTsPaths()plugin with the built-inresolve: { tsconfigPaths: true }option.package.json/yarn.lock: bumped the playground'sjson-differencedependency from pinned1.16.1to^1.16.2so it tracks patch releases of the lib.CLAUDE.md: updated the "Release flow" section to listplaygroundas a released project and to note that it isprivateand therefore skipped bynpm publish.Test plan
yarn release:dry-runand confirmplaygroundappears in the version plan alongsidejson-differenceandjson-difference-cli.release-and-publishworkflow withdry_run: trueand verify the GitHub Pages deploy step is skipped.release-and-publishworkflow without dry run (or simulate) and verifyapps/playground/distis published to thechore/gh-pagesbranch.masterand confirmcd.ymlno longer attempts to deploy the playground.yarn nx build json-differenceand confirm nopackage.jsonis emitted intolibs/json-difference/dist.yarn nx test json-differenceandyarn nx run-many --target=type-checkto confirm the vite config change did not break path resolution.