Auto update CDN URLs in README.md in release PR (#5545)

* Add script to bump major version in README

On lines 29-32, we could alternatively use `replaceAll`, I opted not to
as it is not yet(?) part of an LTS release of NodeJS.

* Bump CDN version in README automatically for new releases

* Rename "bump-cdn-version.js" to "update-cdn-urls.js"

* Update names of file-level constants in update-cdn-urls.js

* Rename workflow setp for updating CDN URLs

* Rename packageJsonFile constant in update-cdn-urls

* Remove semver dependency

* Generalize update-cdn-urls script
This commit is contained in:
Eric Cornelissen 2021-05-05 23:29:49 +02:00 committed by GitHub
parent 92a049441b
commit e049e1d5a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 0 deletions

View File

@ -27,6 +27,8 @@ jobs:
ref: develop
- name: Bump version
run: node ./scripts/bump-version.js "${{ needs.release-pr.outputs.new-version }}"
- name: Update major version in CDN URLs
run: node ./scripts/update-cdn-urls.js
- name: Update slugs table
run: node ./scripts/build-slugs-table.js
- name: Commit version bump

View File

@ -0,0 +1,47 @@
#!/usr/bin/env node
/**
* @fileoverview
* Updates the CDN URLs in the README.md to match the major version in the
* NPM package manifest. Does nothing if the README.md is already up-to-date.
*/
const fs = require("fs");
const path = require("path");
const rootDir = path.resolve(__dirname, "..");
const packageJsonFile = path.resolve(rootDir, "package.json");
const readmeFile = path.resolve(rootDir, "README.md");
function getMajorVersion(semVerVersion) {
const majorVersionAsString = semVerVersion.split('.')[0];
return parseInt(majorVersionAsString);
}
function getManifest() {
const manifestRaw = fs.readFileSync(packageJsonFile).toString();
return JSON.parse(manifestRaw);
}
function updateVersionInReadmeIfNecessary(majorVersion) {
let content = fs.readFileSync(readmeFile).toString();
content = content.replace(
/simple-icons@v[0-9]+/g,
`simple-icons@v${majorVersion}`,
);
fs.writeFileSync(readmeFile, content);
}
function main() {
try {
const manifest = getManifest();
const majorVersion = getMajorVersion(manifest.version);
updateVersionInReadmeIfNecessary(majorVersion);
} catch (error) {
console.error("Failed to update CDN version number:", error);
process.exit(1);
}
}
main();