diff --git a/.gitignore b/.gitignore index e796c1f4b..66c869471 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ node_modules packages/formatters/src/html/templates.ts packages/cli/binaries +packages/cli/src/version.ts /test-harness/tmp/ /test-harness/tests/ packages/*/dist diff --git a/package.json b/package.json index 6cb5dda0f..cd62f8269 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "test.harness": "yarn pretest.harness && jest -c test-harness/jest.config.mjs", "test.jest": "jest --silent --cacheDirectory=.cache/.jest", "test.karma": "karma start", - "prepare": "husky install", + "prepare": "husky install && yarn workspaces foreach run prepare", "prerelease": "patch-package", "release": "yarn prerelease && multi-semantic-release --deps.bump=satisfy", "jest": "jest" @@ -58,6 +58,12 @@ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/changelog", + [ + "@semantic-release/exec", + { + "publishCmd": "node scripts/inline-version.mjs ${nextRelease.version}" + } + ], "@semantic-release/npm", [ "@semantic-release/github", @@ -73,6 +79,7 @@ "@commitlint/config-conventional": "^12.1.4", "@octokit/core": "^3.5.1", "@semantic-release/changelog": "^6.0.3", + "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^8.1.0", "@semantic-release/npm": "^9.0.2", diff --git a/packages/cli/package.json b/packages/cli/package.json index c174dbd1d..ba49c74e4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -24,6 +24,9 @@ "url": "https://github.com/stoplightio/spectral.git" }, "scripts": { + "prelint": "node scripts/inline-version.mjs", + "prepare": "node scripts/inline-version.mjs", + "prebuild": "node scripts/inline-version.mjs", "build.binary": "pkg . --output ./binaries/spectral", "build.windows": "pkg . --targets windows --out-path ./binaries", "build.nix": "pkg . --targets linux-x64,linux-arm64,macos-x64,macos-arm64,alpine-x64,alpine-arm64 --out-path ./binaries", @@ -34,7 +37,7 @@ "@stoplight/json": "~3.21.0", "@stoplight/path": "1.3.2", "@stoplight/spectral-core": "^1.18.3", - "@stoplight/spectral-formatters": "^1.2.0", + "@stoplight/spectral-formatters": "^1.3.0", "@stoplight/spectral-parsers": "^1.0.3", "@stoplight/spectral-ref-resolver": "^1.0.4", "@stoplight/spectral-ruleset-bundler": "^1.5.2", diff --git a/packages/cli/scripts/inline-version.mjs b/packages/cli/scripts/inline-version.mjs new file mode 100644 index 000000000..d9089fa52 --- /dev/null +++ b/packages/cli/scripts/inline-version.mjs @@ -0,0 +1,11 @@ +import * as fs from 'node:fs'; +import process from 'node:process'; +import { fileURLToPath } from 'node:url'; +import { join } from 'node:path'; + +const cwd = join(fileURLToPath(import.meta.url), '../..'); + +const version = + process.argv.length === 3 ? process.argv[2] : JSON.parse(fs.readFileSync(join(cwd, 'package.json'), 'utf8')).version; + +fs.writeFileSync(join(cwd, 'src/version.ts'), `export const VERSION = '${version}';\n`); diff --git a/yarn.lock b/yarn.lock index 626cc7257..b33444fbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2453,6 +2453,22 @@ __metadata: languageName: node linkType: hard +"@semantic-release/exec@npm:^6.0.3": + version: 6.0.3 + resolution: "@semantic-release/exec@npm:6.0.3" + dependencies: + "@semantic-release/error": ^3.0.0 + aggregate-error: ^3.0.0 + debug: ^4.0.0 + execa: ^5.0.0 + lodash: ^4.17.4 + parse-json: ^5.0.0 + peerDependencies: + semantic-release: ">=18.0.0" + checksum: c6ad2f02ff01a4709c4914f560d0343efea9afe993c733ff971da8bf89604a1460d87b26a1a2ace5992c5ace8e8d384cf314504e0c4b623fc8433e8e8d9e2fe0 + languageName: node + linkType: hard + "@semantic-release/git@npm:^10.0.1": version: 10.0.1 resolution: "@semantic-release/git@npm:10.0.1" @@ -11469,6 +11485,7 @@ __metadata: "@commitlint/config-conventional": ^12.1.4 "@octokit/core": ^3.5.1 "@semantic-release/changelog": ^6.0.3 + "@semantic-release/exec": ^6.0.3 "@semantic-release/git": ^10.0.1 "@semantic-release/github": ^8.1.0 "@semantic-release/npm": ^9.0.2