Skip to content

Commit

Permalink
build: provide tools to validate release and prevent missing packages
Browse files Browse the repository at this point in the history
Signed-off-by: Bozhidar Dryanovski <bozhidar.dryanovski@gmail.com>
  • Loading branch information
bdryanovski committed Feb 18, 2022
1 parent 1b696bb commit d724a90
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 5 deletions.
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,13 @@
"release:copyversion": "node ./scripts/copy-version.js",
"release:add-release-notes": "node ./scripts/website-add-rel-notes.js",
"publish:verify": "node ./scripts/publish-verify.js",
"publish:latest": "yarn publish dist/core; yarn publish dist/angular; yarn publish dist/react; yarn publish dist/eslint-plugin-clarity-adoption;",
"publish:verify:registry": "node ./scripts/version-validation.js",
"publish:latest": "yarn publish dist/core --tag latest && yarn publish dist/angular --tag latest && yarn publish dist/react --tag latest && yarn publish dist/eslint-plugin-clarity-adoption --tag latest",
"publish:latest:dry-run": "yarn publish dist/core --dry-run; yarn publish dist/angular --dry-run; yarn publish dist/react --dry-run; yarn publish dist/eslint-plugin-clarity-adoption --dry-run;",
"publish:next": "yarn publish dist/core --tag next; yarn publish dist/angular --tag next; yarn publish dist/react --tag next; yarn publish dist/eslint-plugin-clarity-adoption --tag next;",
"publish:rc": "yarn publish dist/core --tag rc; yarn publish dist/angular --tag rc; yarn publish dist/react --tag rc; yarn publish dist/eslint-plugin-clarity-adoption --tag rc;",
"publish:local": "yarn publish dist/core --registry http://localhost:4873 --tag local; yarn publish dist/angular --registry http://localhost:4873 --tag local; yarn publish dist/react --registry http://localhost:4873 --tag local; yarn publish dist/eslint-plugin-clarity-adoption --registry http://localhost:4873 --tag local",
"publish:local:npm": "npm publish dist/core --registry http://localhost:4873 --tag local; yarn publish dist/angular --registry http://localhost:4873 --tag local; npm publish dist/react --registry http://localhost:4873 --tag local; npm publish dist/eslint-plugin-clarity-adoption --registry http://localhost:4873 --tag local",
"publish:next": "yarn publish dist/core --tag next && yarn publish dist/angular --tag next && yarn publish dist/react --tag next && yarn publish dist/eslint-plugin-clarity-adoption --tag next;",
"publish:rc": "yarn publish dist/core --tag rc && yarn publish dist/angular --tag rc && yarn publish dist/react --tag rc && yarn publish dist/eslint-plugin-clarity-adoption --tag rc &&",
"publish:local": "yarn publish dist/core --registry http://localhost:4873 --tag local && yarn publish dist/angular --registry http://localhost:4873 --tag local && yarn publish dist/react --registry http://localhost:4873 --tag local && yarn publish dist/eslint-plugin-clarity-adoption --registry http://localhost:4873 --tag local",
"publish:local:npm": "npm publish dist/core --registry http://localhost:4873 --tag local && yarn publish dist/angular --registry http://localhost:4873 --tag local && npm publish dist/react --registry http://localhost:4873 --tag local && npm publish dist/eslint-plugin-clarity-adoption --registry http://localhost:4873 --tag local",
"angular:build": "yarn --cwd packages/angular run build",
"angular:test": "yarn --cwd packages/angular run test",
"angular:lint": "yarn --cwd packages/angular run lint",
Expand Down
44 changes: 44 additions & 0 deletions scripts/version-validation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const { spawn } = require('child_process');

const packageJson = require('../package.json');
const packages = ['@cds/angular', '@cds/core', '@cds/react', '@clr/eslint-plugin-clarity-adoption'];

console.log(`\nVerify that all packages are at the latest version and could be installed from NPM Registry.\n`);

Promise.all(
packages.map(package => {
const pkg = `${package}@${packageJson.version}`;

return new Promise((resolve, reject) => {
const npm = spawn('npm', ['install', `${pkg}`, '--dry-run']);

console.log(`\tChecking ${pkg} ...`);

npm.on('close', code => {
if (code !== 0) {
reject([pkg, 'npm install failed']);
} else {
resolve([pkg, 'npm install succeeded']);
}
});
});
})
)
.then(result => {
console.log(`\n`);
result.forEach(res => {
console.log(`\tOK : ${res[0]}`);
});
console.log('\n✅ Verification successful.');
})
.catch(error => {
if (error && Array.isArray(error)) {
console.log('\n\nOne or more packages failed verification.\n');
console.log(`\tPackage: ${error[0]} was not found into NPM Registry`);
}
console.log('\n❌ Verification failed.');
process.exit(1);
})
.then(() => {
process.exit(0);
});

0 comments on commit d724a90

Please sign in to comment.