Merge pull request #20 from rive-app/release-it

add release it for automated github releases and npm publish
This commit is contained in:
Arthur Vivian
2021-06-28 14:59:58 +01:00
committed by GitHub
7 changed files with 94 additions and 37 deletions

View File

@@ -23,7 +23,13 @@ jobs:
run: npm test
- name: Build
run: npm build
- name: Publish
- name: Git config
run: |
git config --local user.email 'hello@rive.app'
git config --local user.name ${{ github.actor }}
- name: Authenticate with registry
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
- name: Release
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm run publish
GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }}
run: npm run release

17
.release-it.json Normal file
View File

@@ -0,0 +1,17 @@
{
"git": {
"commitMessage": "chore: release ${version}",
"tagName": "v${version}",
"changelog": "npx auto-changelog --stdout --commit-limit false --unreleased --template https://raw.githubusercontent.com/release-it/release-it/master/templates/changelog-compact.hbs"
},
"npm": {
"publish": true
},
"github": {
"release": true,
"releaseName": "Release ${version}"
},
"hooks": {
"after:bump": "npx auto-changelog -p"
}
}

0
CHANGELOG.md Normal file
View File

67
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "rive-react",
"version": "0.0.6",
"version": "0.0.7",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -2178,6 +2178,27 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true
},
"auto-changelog": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.3.0.tgz",
"integrity": "sha512-S2B+RtTgytsa7l5iFGBoWT9W9ylITT5JJ8OaMJ7nrwvnlRm1dSS2tghaYueDeInZZafOE+1llH3tUQjMDRVS1g==",
"dev": true,
"requires": {
"commander": "^5.0.0",
"handlebars": "^4.7.3",
"node-fetch": "^2.6.0",
"parse-github-url": "^1.0.2",
"semver": "^6.3.0"
},
"dependencies": {
"commander": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
"integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
"dev": true
}
}
},
"babel-jest": {
"version": "27.0.2",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.2.tgz",
@@ -3673,6 +3694,19 @@
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
},
"handlebars": {
"version": "4.7.7",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
"neo-async": "^2.6.0",
"source-map": "^0.6.1",
"uglify-js": "^3.1.4",
"wordwrap": "^1.0.0"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -4843,6 +4877,18 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
"dev": true
},
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -5037,6 +5083,12 @@
"callsites": "^3.0.0"
}
},
"parse-github-url": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz",
"integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==",
"dev": true
},
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -6203,6 +6255,13 @@
"integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==",
"dev": true
},
"uglify-js": {
"version": "3.13.10",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz",
"integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==",
"dev": true,
"optional": true
},
"unbox-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -6380,6 +6439,12 @@
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true
},
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",

View File

@@ -10,7 +10,7 @@
"lint": "eslint -c .eslintrc.js 'src/**/*{.ts,.tsx}'",
"format": "prettier --write src",
"types:check": "tsc --noEmit",
"publish": "./scripts/publish.sh"
"release": "release-it"
},
"repository": {
"type": "git",
@@ -37,6 +37,7 @@
"@types/testing-library__jest-dom": "^5.9.5",
"@typescript-eslint/eslint-plugin": "^4.26.0",
"@typescript-eslint/parser": "^4.26.0",
"auto-changelog": "^2.3.0",
"bunchee": "^1.6.0",
"eslint": "^7.28.0",
"eslint-config-prettier": "^8.3.0",

View File

@@ -1,27 +0,0 @@
const fs = require('fs');
const package = require('../package.json');
function parseVersion(v) {
return v.split('.').map((n) => Number.parseInt(n, 10));
}
const packageVersion = parseVersion(package.version);
// Last version seems to always be latest.
const publishedVersion = parseVersion(JSON.parse(process.argv[2]).pop());
const isGreater = (first, second) => {
// Assumes first and second have same number of version number
const zipped = first.map((n, i) => [n, second[i]]);
return zipped.some(([a, b]) => a > b);
};
// If package version is greater than what's published, we use that.
if (isGreater(packageVersion, publishedVersion)) {
return;
}
// Otherwise increment the publishedVersions patch number and push to the package.json
const newVersion = publishedVersion;
newVersion[2]++;
package.version = newVersion.join('.');
fs.writeFileSync('./package.json', JSON.stringify(package, null, 2));

View File

@@ -1,5 +0,0 @@
#!/bin/bash
set -e
NPM_VERSIONS=`npm show rive-react versions --json`
node ./scripts/next_version.js "$NPM_VERSIONS"
npm publish