Skip to content

Commit 1b573fd

Browse files
committed
fix: script
1 parent 1f22c39 commit 1b573fd

File tree

5 files changed

+48
-2
lines changed

5 files changed

+48
-2
lines changed

.env-cmdrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"version-ci": {
3+
"IN_VERSION_CI_SCRIPT": "true"
4+
}
5+
}

.github/workflows/Release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
id: changesets
3434
uses: changesets/action@v1
3535
with:
36+
# this expects you to have a npm script called version that runs some logic and then calls `changeset version`.
37+
version: yarn version:ci
3638
# This expects you to have a script called release which does a build for your packages and calls changeset publish
3739
publish: yarn release
3840
commit: "chore: release svelte-eslint-parser"

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
"release": "changeset publish",
4343
"test": "yarn mocha \"tests/src/**/*.ts\" --reporter dot --timeout 60000",
4444
"ts": "node -r esbuild-register",
45-
"update-fixtures": "yarn ts ./tools/update-fixtures.ts"
45+
"update-fixtures": "yarn ts ./tools/update-fixtures.ts",
46+
"version:ci": "env-cmd -e version-ci yarn build:meta && changeset version"
4647
},
4748
"peerDependencies": {
4849
"svelte": "^3.37.0"
@@ -73,6 +74,7 @@
7374
"@typescript-eslint/parser": "~5.59.0",
7475
"benchmark": "^2.1.4",
7576
"chai": "^4.3.4",
77+
"env-cmd": "^10.1.0",
7678
"esbuild": "^0.17.0",
7779
"esbuild-register": "^3.3.3",
7880
"eslint": "^8.2.0",

tools/lib/changesets-util.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import assembleReleasePlan from "@changesets/assemble-release-plan";
2+
import readChangesets from "@changesets/read";
3+
import { read } from "@changesets/config";
4+
import { getPackages } from "@manypkg/get-packages";
5+
import { readPreState } from "@changesets/pre";
6+
import path from "path";
7+
8+
const root = path.resolve(__dirname, "../..");
9+
10+
/** Get new version string from changesets */
11+
export async function getNewVersion(): Promise<string> {
12+
const packages = await getPackages(root);
13+
const preState = await readPreState(root);
14+
const config = await read(root, packages);
15+
const changesets = await readChangesets(root);
16+
17+
const releasePlan = assembleReleasePlan(
18+
changesets,
19+
packages,
20+
config,
21+
preState
22+
);
23+
24+
return releasePlan.releases.find(
25+
({ name }) => name === "svelte-eslint-parser"
26+
)!.newVersion;
27+
}

tools/update-meta.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import fs from "fs";
22
import path from "path";
33
import { ESLint } from "eslint";
44
import { name, version } from "../package.json";
5+
import { getNewVersion } from "./lib/changesets-util";
56

67
const META_PATH = path.resolve(__dirname, "../src/meta.ts");
78

@@ -17,9 +18,18 @@ async function main() {
1718
* in order to update its content execute "yarn build:meta"
1819
*/
1920
export const name = ${JSON.stringify(name)} as const;
20-
export const version = ${JSON.stringify(version)} as const;
21+
export const version = ${JSON.stringify(await getVersion())} as const;
2122
`,
2223
{ filePath: META_PATH }
2324
);
2425
fs.writeFileSync(META_PATH, result.output!);
2526
}
27+
28+
/** Get version */
29+
function getVersion() {
30+
// eslint-disable-next-line no-process-env -- ignore
31+
if (process.env.IN_VERSION_CI_SCRIPT) {
32+
return getNewVersion();
33+
}
34+
return version;
35+
}

0 commit comments

Comments
 (0)