ci: versioning fix - again

This commit is contained in:
Salakar
2020-05-29 15:23:44 +01:00
parent 6b1615d4ab
commit 31612d5416
3 changed files with 50 additions and 38 deletions

46
scripts/postversion.js Normal file
View File

@@ -0,0 +1,46 @@
const { sep } = require('path');
const { execSync } = require('child_process');
const { readFileSync, writeFileSync } = require('fs');
const packages = JSON.parse(execSync('lerna ls --json').toString('utf-8'));
const firebaseAppPackageName = '@react-native-firebase/app';
const firebaseAppPackageVersion = packages.find(package => package.name == firebaseAppPackageName)
.version;
packages.forEach(package => {
if (package.name == firebaseAppPackageName) {
return;
}
const { location } = package;
// ---------------------------
// Update Peer Dependencies
// ---------------------------
const packageJsonPath = `${location}${sep}/package.json`;
const packageJsonContents = JSON.parse(readFileSync(packageJsonPath).toString('utf-8'));
if (!packageJsonContents.peerDependencies) {
return;
}
if (!packageJsonContents.peerDependencies[firebaseAppPackageName]) {
return;
}
if (packageJsonContents.peerDependencies[firebaseAppPackageName] === firebaseAppPackageVersion) {
return;
}
packageJsonContents.peerDependencies[firebaseAppPackageName] = firebaseAppPackageVersion;
writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, null, 2) + '\n');
execSync(`git add ${packageJsonPath}`);
execSync(`git commit -m "build(${packageJsonContents.name.replace('@react-native-firebase/', '')}): update core peer dependency to v${firebaseAppPackageVersion} [publish]"`);
console.log(
`Updated '${firebaseAppPackageName}' peer dependency on package`,
packageJsonContents.name,
'to',
packageJsonContents.peerDependencies[firebaseAppPackageName],
);
});

View File

@@ -4,14 +4,7 @@ const { readFileSync, writeFileSync } = require('fs');
const packages = JSON.parse(execSync('lerna ls --json').toString('utf-8'));
const firebaseAppPackageName = '@react-native-firebase/app';
const firebaseAppPackageVersion = packages.find(package => package.name == firebaseAppPackageName)
.version;
packages.forEach(package => {
if (package.name == firebaseAppPackageName) {
return;
}
const { location } = package;
// ---------------------------
@@ -19,6 +12,8 @@ packages.forEach(package => {
// ---------------------------
// Links to commits/PRs are broken on conventional-commits-changelog
const changelogPath = `${location}${sep}/CHANGELOG.md`;
console.log(`Fixing changelog links & formatting: ${changelogPath}`);
let changelogContents = readFileSync(changelogPath).toString('utf-8');
changelogContents = changelogContents.replace(
/github\.com\/invertase\/react-native-firebase\/(tree\/master\/packages\/[a-z-]*\/)/gm,
@@ -30,34 +25,4 @@ packages.forEach(package => {
// Format Changelog
// ---------------------------
execSync(`prettier --write ${changelogPath}`);
// ---------------------------
// Update Peer Dependencies
// ---------------------------
const packageJsonPath = `${location}${sep}/package.json`;
const packageJsonContents = JSON.parse(readFileSync(packageJsonPath).toString('utf-8'));
if (!packageJsonContents.peerDependencies) {
return;
}
if (!packageJsonContents.peerDependencies[firebaseAppPackageName]) {
return;
}
if (packageJsonContents.peerDependencies[firebaseAppPackageName] === firebaseAppPackageVersion) {
return;
}
packageJsonContents.peerDependencies[firebaseAppPackageName] = firebaseAppPackageVersion;
writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, null, 2) + '\n');
execSync(`git add ${packageJsonPath}`);
execSync(`git commit -m "build(${packageJsonContents.name.replace('@react-native-firebase/', '')}): update core peer dependency to v${firebaseAppPackageVersion} [publish]"`);
console.log(
`Updated '${firebaseAppPackageName}' peer dependency on package`,
packageJsonContents.name,
'to',
packageJsonContents.peerDependencies[firebaseAppPackageName],
);
});