Skip to content

Commit de3d447

Browse files
committed
@W-17330636@ Fixing error in release process
1 parent 06634b9 commit de3d447

File tree

3 files changed

+66
-8
lines changed

3 files changed

+66
-8
lines changed

.github/workflows/publish-package-to-npm.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,14 @@ jobs:
112112
- name: Strip '-SNAPSHOT' from to-be-released package versions
113113
run: |
114114
PACKAGE_LIST=(${{ needs.validate-packages-as-releasable.outputs.packages-to-release }})
115-
for PACKAGE_NAME in "${PACKAGE_LIST[@]}"
116-
do
117-
cd ./packages/${PACKAGE_NAME}
118-
npm --no-git-tag-version version patch # Increments X.Y.Z-SNAPSHOT to X.Y.Z, which is what we want.
119-
cd ../..
120-
done
115+
node ./.github/workflows/publish-package-to-npm/update-versions-in-released-packages "$PACKAGE_LIST"
121116
- name: Update inter-package dependencies
122117
run: |
123118
RELEASABLE_PACKAGES=${{ needs.validate-packages-as-releasable.outputs.packages-to-release }}
124119
cd packages
125120
ALL_PACKAGES=`ls`
126121
cd ..
127-
node ./.github/workflows/publish-package-to-npm/update-dependencies-on-released-pacakges.js "$RELEASABLE_PACKAGES" "$ALL_PACKAGES"
122+
node ./.github/workflows/publish-package-to-npm/update-dependencies-on-released-packages.js "$RELEASABLE_PACKAGES" "$ALL_PACKAGES"
128123
- name: Build
129124
run: |
130125
npm install

.github/workflows/publish-package-to-npm/update-dependencies-on-released-packages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function main() {
1010

1111
const packageChangesMade = updatePackageDependenciesAndDescribeChanges(packageJsonsToRelease, allPackageJsons);
1212
if (packageChangesMade.size > 0) {
13-
displayMapOfLists('THE FOLLOWING DEPENDENCY CHANGES WERE MADE CHANGES WERE MADE:', packageChangesMade);
13+
displayMapOfLists('THE FOLLOWING DEPENDENCY CHANGES WERE MADE:', packageChangesMade);
1414
persistPackageJsons(allPackages, allPackageJsons);
1515
} else {
1616
console.log('NO PACKAGE.JSON CHANGES WERE MADE');
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
const path = require('path');
2+
const fs = require('fs');
3+
4+
function main() {
5+
const packagesToRelease = process.argv[2].split(" ");
6+
7+
const packageJsonsToRelease = getPackageJsons(packagesToRelease);
8+
9+
const packageChangesMade = updatePackageVersionsAndDescribeChanges(packageJsonsToRelease);
10+
11+
if (packageChangesMade.length > 0) {
12+
displayList('THE FOLLOWING VERSION CHANGES WERE MADE:', packageChangesMade);
13+
persistPackageJsons(packagesToRelease, packageJsonsToRelease);
14+
} else {
15+
console.log('NO PACKAGE.JSON CHANGES WERE MADE');
16+
}
17+
}
18+
19+
function displayList(header, list) {
20+
console.log(header);
21+
for (const listItem of list) {
22+
console.log(`* ${listItem}`);
23+
}
24+
console.log('');
25+
}
26+
27+
function getPackageJsons(packageNames) {
28+
return packageNames.map(getPackageJson);
29+
}
30+
31+
function getPackageJson(packageName) {
32+
const packageJsonPath = path.join('packages', packageName, 'package.json');
33+
return JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
34+
}
35+
36+
function updatePackageVersionsAndDescribeChanges(packageJsons) {
37+
const changeDescriptionList = [];
38+
for (const packageJson of packageJsons) {
39+
const packageName = packageJson.name;
40+
41+
// The version has already been validated as ending in `-SNAPSHOT`, so just rip that many characters off the end.
42+
const oldVersion = packageJson.version;
43+
const newVersion = oldVersion.slice(0, oldVersion.length - `-SNAPSHOT`.length);
44+
packageJson.version = newVersion;
45+
46+
changeDescriptionList.push(`${packageName} from ${oldVersion} to ${newVersion}`);
47+
}
48+
return changeDescriptionList;
49+
}
50+
51+
function persistPackageJsons(packageNames, packageJsons) {
52+
packageNames.forEach((packageName, idx) => {
53+
const packageJson = packageJsons[idx];
54+
persistPackageJson(packageName, packageJson);
55+
});
56+
}
57+
58+
function persistPackageJson(packageName, packageJson) {
59+
const packageJsonPath = path.join('packages', packageName, 'package.json');
60+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
61+
}
62+
63+
main();

0 commit comments

Comments
 (0)