chore(ci): Auto-update README.md with versions

Only happens while releasing on master:
* `NEXT_VERSION` should be used in all the `README.md` `since` columns.
* Links and url will automatically be updated to the latest release
This commit is contained in:
Jérôme Wiedemann
2021-01-18 20:26:16 +00:00
committed by Jonas De Kegel
parent 2426f17a35
commit 0d22b3bf73
5 changed files with 123 additions and 17 deletions

View File

@@ -5,6 +5,7 @@ on: workflow_dispatch
jobs:
release-bundle:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev'
outputs:
new_release_published: ${{ steps.semantic.outputs.new_release_published }}

69
package-lock.json generated
View File

@@ -5,7 +5,7 @@
"requires": true,
"packages": {
"": {
"version": "0.10.0",
"version": "0.11.0-dev.1",
"license": "MIT",
"dependencies": {
"@kalkih/lz-string": "^1.4.5",
@@ -25,6 +25,7 @@
"@rollup/plugin-json": "^4.1.0",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/exec": "^5.0.0",
"@semantic-release/git": "^9.0.0",
"@semantic-release/github": "^7.2.0",
"@semantic-release/npm": "^7.0.9",
@@ -1668,6 +1669,44 @@
"integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
"dev": true
},
"node_modules/@semantic-release/exec": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-5.0.0.tgz",
"integrity": "sha512-t7LWXIvDJQbuGCy2WmMG51WyaGSLTvZBv9INvcI4S0kn+QjnnVVUMhcioIqhb0r3yqqarMzHVcABFug0q0OXjw==",
"dev": true,
"dependencies": {
"@semantic-release/error": "^2.1.0",
"aggregate-error": "^3.0.0",
"debug": "^4.0.0",
"execa": "^4.0.0",
"lodash": "^4.17.4",
"parse-json": "^5.0.0"
},
"engines": {
"node": ">=10.18"
},
"peerDependencies": {
"semantic-release": ">=16.0.0 <18.0.0"
}
},
"node_modules/@semantic-release/exec/node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
"json-parse-even-better-errors": "^2.3.0",
"lines-and-columns": "^1.1.6"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/git": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-9.0.0.tgz",
@@ -17002,6 +17041,34 @@
"integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
"dev": true
},
"@semantic-release/exec": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-5.0.0.tgz",
"integrity": "sha512-t7LWXIvDJQbuGCy2WmMG51WyaGSLTvZBv9INvcI4S0kn+QjnnVVUMhcioIqhb0r3yqqarMzHVcABFug0q0OXjw==",
"dev": true,
"requires": {
"@semantic-release/error": "^2.1.0",
"aggregate-error": "^3.0.0",
"debug": "^4.0.0",
"execa": "^4.0.0",
"lodash": "^4.17.4",
"parse-json": "^5.0.0"
},
"dependencies": {
"parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
"json-parse-even-better-errors": "^2.3.0",
"lines-and-columns": "^1.1.6"
}
}
}
},
"@semantic-release/git": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-9.0.0.tgz",

View File

@@ -36,6 +36,7 @@
"@rollup/plugin-json": "^4.1.0",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/exec": "^5.0.0",
"@semantic-release/git": "^9.0.0",
"@semantic-release/github": "^7.2.0",
"@semantic-release/npm": "^7.0.9",
@@ -58,4 +59,4 @@
"watch": "rollup -c --watch",
"postversion": "npm run build"
}
}
}

View File

@@ -1,19 +1,31 @@
/* eslint-disable no-template-curly-in-string */
module.exports = {
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
["@semantic-release/npm", {
"npmPublish": false,
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
'@semantic-release/changelog',
['@semantic-release/npm', {
npmPublish: false,
}],
["@semantic-release/github", {
"assets": "dist/*.js"
['@semantic-release/exec', {
prepareCmd: './scripts/update_readme.sh "${nextRelease.version}" "$GITHUB_REF"',
}],
['@semantic-release/git', {
assets: [
'CHANGELOG.md',
'README.md',
'package.json',
'package-lock.json',
'npm-shrinkwrap.json',
],
}],
['@semantic-release/github', {
assets: 'dist/*.js',
}],
"@semantic-release/git"
],
"preset": "angular",
"branches": [
"master",
{ "name": "dev", "prerelease": true },
]
}
preset: 'angular',
branches: [
{ name: 'master' },
{ name: 'dev', prerelease: true },
],
};

25
scripts/update_readme.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/sh
set -e
VERSION=$1
BRANCH=$2
if [ -z "${VERSION}" ]; then
echo "Version not specified; Exiting."
exit 1;
fi
if [ -z "${BRANCH}" ]; then
echo "Version not specified; Exiting."
exit 1;
fi
if [ ! "${BRANCH}" = "refs/heads/master" ]; then
echo "Branch is ${BRANCH}; README.md not updated."
exit 0;
fi
sed -i -e "s/NEXT_VERSION/v${VERSION}/g" ./README.md
sed -i -e "s|https://github.com/kalkih/mini-graph-card/releases/download/.*/mini-graph-card-bundle.js|https://github.com/kalkih/mini-graph-card/releases/download/v${VERSION}/mini-graph-card-bundle.js|g" ./README.md
sed -i -e "s|-\surl:\s/local/mini-graph-card-bundle.js?v=.*|- url: /local/mini-graph-card-bundle.js?v=${VERSION}|g" ./README.md