mirror of
https://github.com/spartan-ng/spartan.git
synced 2026-09-22 16:41:38 +08:00
9000456836
* ci: adopt semantic-release for versioned v1 releases Replace the nightly alpha-increment cron with semantic-release driving semver for @spartan-ng/brain, cli and mcp across main/beta/alpha channels, with GitHub Releases, npm trusted publishing, and a verify-gated workflow. Make @spartan-ng/helm private, fix package metadata for a public v1, and remove the now-dead auto-increment generator and nightly scripts. * ci: block release-triggering commit types for non-published changes semantic-release computes the version from commit types across the whole branch and never inspects which files changed, so a feat/fix touching only apps/app (the docs app) or tooling would still bump and publish brain/cli/mcp. Extend the commit-msg hook to reject feat/fix/perf/refactor/revert and breaking changes when no published lib (libs/brain|cli|helm|mcp|registry) is touched, pointing the author at docs/chore/etc instead. * ci: harden release workflow and drop no-op release asset - release.yml: add a top-level read-only token default so the verify job runs with least privilege; the release job keeps its explicit write scopes. - release.config.mjs: drop libs/helm/package.json from the git assets list. helm is private and pinned at 0.0.0 and no release generator writes it, so committing it was always a no-op. - commit-msg: note that the release-triggering type list mirrors release.config.mjs so the two stay in sync. * docs: mark the release GitHub App as required in v1 checklist release.yml always mints its token via create-github-app-token, so the App is required for any release, not just when branch protection is enabled. * chore(repo): collapse the three release-version generators into one replace-ui-version, replace-cli-version and replace-mcp-version all did the same thing in the current tree: set their own package.json version from --newVersion / $VERSION. replace-ui-version also carried two paths that are now dead — bumping brain's @spartan-ng peerDeps (brain has none) and stamping a SPARTAN_VERSION constant into the CLI's versions.ts (that constant does not exist; the CLI reads the installed version via getInstalledPackageVersion). Replace all three with one set-release-version generator that stamps the version into brain/cli/mcp in lockstep, covered by unit tests. Drop the now-static versions.ts from the semantic-release git assets.
36 lines
822 B
JSON
36 lines
822 B
JSON
{
|
|
"name": "helm",
|
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
"sourceRoot": "libs/helm/src",
|
|
"prefix": "hlm",
|
|
"projectType": "library",
|
|
"tags": ["scope:helm"],
|
|
"targets": {
|
|
"build": {
|
|
"executor": "@nx/angular:package",
|
|
"outputs": ["{workspaceRoot}/dist/{projectRoot}"],
|
|
"options": {
|
|
"project": "libs/helm/ng-package.json",
|
|
"tsConfig": "libs/helm/tsconfig.lib.json"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"tsConfig": "libs/helm/tsconfig.lib.prod.json"
|
|
},
|
|
"development": {}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"test": {
|
|
"executor": "@nx/vitest:test",
|
|
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
"options": {
|
|
"configFile": "libs/helm/vite.config.mts"
|
|
}
|
|
},
|
|
"lint": {
|
|
"executor": "@nx/eslint:lint"
|
|
}
|
|
}
|
|
}
|