37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
import semver from 'semver';
|
||
|
import {args, getVersion, run} from './util.js';
|
||
|
|
||
|
const {inc} = semver;
|
||
|
|
||
|
// default exec options
|
||
|
if (args.f || args.force || await isDevCommit()) {
|
||
|
|
||
|
// increase version patch number
|
||
|
const version = inc(await getVersion(), 'patch');
|
||
|
|
||
|
// get current git hash
|
||
|
const hash = (await run('git rev-parse --short HEAD')).trim();
|
||
|
|
||
|
// set version of package.json
|
||
|
await run(`npm version ${version}-dev.${hash} --git-tag-version false`);
|
||
|
|
||
|
// create dist files
|
||
|
await run('yarn compile && yarn compile-rtl && yarn build-scss');
|
||
|
|
||
|
// publish to dev tag
|
||
|
await run('npm publish --tag dev');
|
||
|
|
||
|
}
|
||
|
|
||
|
async function isDevCommit() {
|
||
|
|
||
|
// check for changes to publish (%B: raw body (unwrapped subject and body)
|
||
|
const message = await run('git log -1 --pretty=%B');
|
||
|
|
||
|
// https://www.conventionalcommits.org/en/v1.0.0/
|
||
|
const type = message.match(/^(revert: )?(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types|build)(\(.+\))?: .{1,50}/);
|
||
|
|
||
|
return type && ['feat', 'fix', 'refactor', 'perf'].includes(type[2]);
|
||
|
|
||
|
}
|