Skip to content

Commit 1ec67bb

Browse files
author
wabiwabo
committed
fix: check version
1 parent 6f48e27 commit 1ec67bb

File tree

3 files changed

+58
-1
lines changed

3 files changed

+58
-1
lines changed

.github/workflows/lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,5 @@ jobs:
3939
yarn
4040
yarn bootstrap
4141
yarn build
42+
yarn check-versions
4243
yarn lint

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
"lint:staged": "lint-staged",
3131
"test": "lerna run test",
3232
"setup": "yarn && yarn bootstrap && yarn build",
33-
"publish-packages": "lerna publish from-package",
33+
"check-versions": "node scripts/check-versions.js",
34+
"publish-packages": "yarn check-versions && lerna publish from-package",
3435
"update-protobuf": "lerna run update:protobuf --scope=@onekeyfe/hd-transport",
3536
"update-version": "lerna version --no-git-tag-version --force-publish=@onekeyfe/hd-core,@onekeyfe/hd-ble-sdk,@onekeyfe/hd-common-connect-sdk,@onekeyfe/hd-transport-electron,@onekeyfe/hd-transport-emulator,@onekeyfe/hd-transport-http,@onekeyfe/hd-transport-lowlevel,@onekeyfe/hd-transport-react-native,@onekeyfe/hd-transport-web-device,@onekeyfe/hd-transport,@onekeyfe/hd-web-sdk,@onekeyfe/hd-shared",
3637
"example": "cd ./packages/connect-examples/expo-example && yarn start",

scripts/check-versions.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
const packagesDir = path.resolve(__dirname, '../packages');
5+
6+
function main() {
7+
const versions = {};
8+
let firstVersion = null;
9+
let hasError = false;
10+
11+
const packageDirs = fs.readdirSync(packagesDir).filter(file => {
12+
const filePath = path.join(packagesDir, file);
13+
return fs.statSync(filePath).isDirectory();
14+
});
15+
16+
for (const pkg of packageDirs) {
17+
const pkgJsonPath = path.join(packagesDir, pkg, 'package.json');
18+
if (fs.existsSync(pkgJsonPath)) {
19+
try {
20+
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
21+
const { name, version } = pkgJson;
22+
23+
if (name && version) {
24+
versions[name] = version;
25+
if (!firstVersion) {
26+
firstVersion = version;
27+
}
28+
29+
if (version !== firstVersion) {
30+
hasError = true;
31+
}
32+
}
33+
} catch (e) {
34+
console.error(`Error parsing ${pkgJsonPath}:`, e);
35+
}
36+
}
37+
}
38+
39+
if (hasError) {
40+
console.error('❌ Error: Found inconsistent package versions.');
41+
console.log(' Please ensure all packages have the same version.');
42+
console.log('\n--- Version Report ---');
43+
for (const [name, version] of Object.entries(versions)) {
44+
const marker = version === firstVersion ? '✅' : '❌';
45+
console.log(` ${marker} ${name}: ${version}`);
46+
}
47+
console.log('----------------------\n');
48+
process.exit(1);
49+
} else {
50+
console.log(`✅ All ${Object.keys(versions).length} packages are at version: ${firstVersion}`);
51+
}
52+
}
53+
54+
main();
55+

0 commit comments

Comments
 (0)