build: add semantic release

This commit is contained in:
Andrey Ponomarenko 2020-09-25 08:22:23 +03:00
parent 0eb087ba16
commit ed5a1bd44f
4 changed files with 3073 additions and 70 deletions

12
.releaserc.json Normal file
View File

@ -0,0 +1,12 @@
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"@semantic-release/git",
{
"path": "@semantic-release/npm",
"npmPublish": true
}
]
}

View File

@ -1,12 +1,13 @@
{ {
"name": "DiawiNodeLoader", "name": "diawi-nodejs-uploader",
"version": "0.0.1", "version": "0.0.1",
"main": "index.js", "main": "index.js",
"author": "Andrey Ponomarenko", "author": "Andrey Ponomarenko",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"r": "yarn webpack && node dist/index.js", "r": "yarn webpack && node dist/index.js",
"build": "yarn tsc && yarn tscpaths -p tsconfig.json -s ./src -o ./dist" "build": "yarn tsc && yarn tscpaths -p tsconfig.json -s ./src -o ./dist",
"release": "node scripts/release.js"
}, },
"dependencies": { "dependencies": {
"form-data": "^3.0.0", "form-data": "^3.0.0",
@ -17,6 +18,11 @@
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^9.1.2", "@commitlint/cli": "^9.1.2",
"@commitlint/config-conventional": "^9.1.2", "@commitlint/config-conventional": "^9.1.2",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/git": "^9.0.0",
"@semantic-release/npm": "^7.0.6",
"@semantic-release/release-notes-generator": "^9.0.1",
"@types/fs-extra": "^9.0.1", "@types/fs-extra": "^9.0.1",
"@types/node-fetch": "^2.5.7", "@types/node-fetch": "^2.5.7",
"@types/promise.allsettled": "^1.0.3", "@types/promise.allsettled": "^1.0.3",
@ -29,6 +35,7 @@
"eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-react": "^7.20.4", "eslint-plugin-react": "^7.20.4",
"husky": "^4.3.0", "husky": "^4.3.0",
"semantic-release": "^17.1.2",
"ts-loader": "^8.0.2", "ts-loader": "^8.0.2",
"tscpaths": "^0.0.9", "tscpaths": "^0.0.9",
"webpack": "^4.44.1", "webpack": "^4.44.1",

33
scripts/release.js Normal file
View File

@ -0,0 +1,33 @@
/* eslint-disable no-console */
// eslint-disable-next-line @typescript-eslint/no-var-requires
const semanticRelease = require('semantic-release');
(async () => {
try {
const result = await semanticRelease({
branches: ['master'],
repositoryUrl: 'git@github.com:Natteke/diawi-nodejs-uploader.git',
});
if (result) {
const { lastRelease, commits, nextRelease, releases } = result;
console.log(
`Published ${nextRelease.type} release version ${nextRelease.version} containing ${commits.length} commits.`,
);
if (lastRelease.version) {
console.log(`The last release was "${lastRelease.version}".`);
}
for (const release of releases) {
console.log(`The release was published with plugin "${release.pluginName}".`);
}
} else {
console.log('No release published.');
}
} catch (err) {
console.error('The automated release failed with %O', err);
}
})();

3087
yarn.lock

File diff suppressed because it is too large Load Diff