Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Commit

Permalink
Add custom commit verify and trigger minor release <?.x.?>
Browse files Browse the repository at this point in the history
  • Loading branch information
karelhala committed Jun 7, 2018
1 parent 4f7503f commit 52089b3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 2 deletions.
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ script:
- npm install
- npm t

after_success: npm run coverage
after_success:
- npm run coverage
- npm run release
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"doc": "react-docgen",
"storybook": "start-storybook -c scripts/storybook -p 6006",
"build-storybook": "build-storybook -c scripts/storybook -o .out",
"coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
"coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
"prepublishOnly": "npm run build",
"release": "semantic-release"
},
"engines": {
"node": ">= 6.0.0",
Expand Down Expand Up @@ -94,6 +96,7 @@
"redux-mock-store": "^1.5.1",
"resolve-url-loader": "^2.2.1",
"sass-loader": "^6.0.6",
"semantic-release": "^15.5.0",
"style-loader": "^0.20.1",
"url-loader": "^0.6.2",
"webpack": "^3.10.0",
Expand All @@ -112,5 +115,12 @@
"redux": "^3.7.2",
"redux-form-validators": "^2.4.3",
"redux-mock-store": "^1.5.1"
},
"release": {
"analyzeCommits": [
{
"path": "./scripts/verify-commits.js"
}
]
}
}
42 changes: 42 additions & 0 deletions scripts/verify-commits.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
const releaseTypes = ['major', 'minor', 'patch', 'prerelease'];
let patterns = {
major: '<x.[x|?].[x|?]>',
minor: '<?.x.[x|?]>',
patch: '<?.?.x>',
noRelease: '<no>',
};

async function commitAnalyzer(pluginConfig, { options: { analyzeCommits }, commits, logger }) {
let releaseNumber = 3;
analyzeCommits.map((onePlugin) => {
patterns = {
...patterns,
...onePlugin.patterns,
};
return null;
});
logger.log(`
Using patterns:
major - ${patterns.major}
minor - ${patterns.minor}
patch - ${patterns.patch}
noRelease - ${patterns.noRelease}`);
let i = 0; const iMax = commits.length;
for (; i < iMax; i++) {
if (commits[i].message.search(new RegExp(patterns.major), i) !== -1) {
releaseNumber = 0;
} else if (commits[i].message.search(new RegExp(patterns.minor), i) !== -1 && releaseNumber > 1) {
releaseNumber = 1;
} else if (commits[i].message.search(new RegExp(patterns.patch), i) !== -1 && releaseNumber > 2) {
releaseNumber = 2;
} else if (commits[i].message.search(new RegExp(patterns.noRelease), i) !== -1 && releaseNumber > 2) {
logger.log('No release !');
return null;
}
}
releaseNumber = releaseNumber === 3 ? 2 : releaseNumber;
logger.log('Release version %s', releaseTypes[releaseNumber]);
return releaseTypes[releaseNumber];
}

module.exports = commitAnalyzer;

0 comments on commit 52089b3

Please sign in to comment.