mirror of
https://github.com/Mibew/simple-icons.git
synced 2024-11-15 18:04:12 +03:00
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:
parent
92a049441b
commit
e049e1d5a5
2
.github/workflows/create-release.yml
vendored
2
.github/workflows/create-release.yml
vendored
@ -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
|
||||
|
47
scripts/update-cdn-urls.js
Normal file
47
scripts/update-cdn-urls.js
Normal 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();
|
Loading…
Reference in New Issue
Block a user