Skip to content

Commit 679ed36

Browse files
Merge pull request #249 from technote-space/release/v1.2.0
Release/v1.2.0
2 parents 429e5e2 + bf92e1a commit 679ed36

14 files changed

+1601
-267
lines changed

.commitlintrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"extends": [
3+
"@commitlint/config-conventional"
4+
]
5+
}

.huskyrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"hooks": {
3+
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
4+
"pre-commit": "lint-staged"
5+
}
6+
}

.lintstagedrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"*.{js,jsx,ts,tsx}": "yarn lint:fix"
3+
}

README.ja.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ const {
167167
useNpm,
168168
replaceAll,
169169
generateNewPatchVersion,
170+
generateNewMinorVersion,
171+
generateNewMajorVersion,
170172
arrayChunk,
171173
} = Utils;
172174

@@ -195,6 +197,8 @@ console.log(getArrayInput('TEST')); // e.g. ['test1', 'test2']
195197
console.log(useNpm('dir')); // e.g. true
196198
console.log(replaceAll('test1-test2-test3', 'test', 'abc')); // e.g. abc1-abc2-abc3
197199
console.log(generateNewPatchVersion('v1.2.3')); // v1.2.4
200+
console.log(generateNewMinorVersion('v1.2.3')); // v1.3.0
201+
console.log(generateNewMajorVersion('v1.2.3')); // v2.0.0
198202
console.log(arrayChunk([1, 2, 3, 4, 5, 6, 7], 3)); // [[1, 2, 3], [4, 5, 6], [7]]
199203
async function run () {
200204
await sleep(1000);

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ const {
167167
useNpm,
168168
replaceAll,
169169
generateNewPatchVersion,
170+
generateNewMinorVersion,
171+
generateNewMajorVersion,
170172
arrayChunk,
171173
} = Utils;
172174

@@ -195,6 +197,8 @@ console.log(getArrayInput('TEST')); // e.g. ['test1', 'test2']
195197
console.log(useNpm('dir')); // e.g. true
196198
console.log(replaceAll('test1-test2-test3', 'test', 'abc')); // e.g. abc1-abc2-abc3
197199
console.log(generateNewPatchVersion('v1.2.3')); // v1.2.4
200+
console.log(generateNewMinorVersion('v1.2.3')); // v1.3.0
201+
console.log(generateNewMajorVersion('v1.2.3')); // v2.0.0
198202
console.log(arrayChunk([1, 2, 3, 4, 5, 6, 7], 3)); // [[1, 2, 3], [4, 5, 6], [7]]
199203
async function run () {
200204
await sleep(1000);

__tests__/api-helper2.test.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,46 @@ describe('ApiHelper with params', () => {
276276
expect(await helper.getNewPatchVersion()).toBe('v0.0.1');
277277
});
278278
});
279+
280+
describe('getNewMinorVersion', () => {
281+
it('should get tags', async() => {
282+
nock('https://api.github.com')
283+
.persist()
284+
.get('/repos/hello/world/git/matching-refs/tags/')
285+
.reply(200, () => getApiFixture(rootDir, 'repos.git.matching-refs'));
286+
287+
expect(await helper.getNewMinorVersion()).toBe('v2.1.0');
288+
});
289+
290+
it('should get tags', async() => {
291+
nock('https://api.github.com')
292+
.persist()
293+
.get('/repos/hello/world/git/matching-refs/tags/')
294+
.reply(200, () => []);
295+
296+
expect(await helper.getNewMinorVersion()).toBe('v0.1.0');
297+
});
298+
});
299+
300+
describe('getNewMajorVersion', () => {
301+
it('should get tags', async() => {
302+
nock('https://api.github.com')
303+
.persist()
304+
.get('/repos/hello/world/git/matching-refs/tags/')
305+
.reply(200, () => getApiFixture(rootDir, 'repos.git.matching-refs'));
306+
307+
expect(await helper.getNewMajorVersion()).toBe('v3.0.0');
308+
});
309+
310+
it('should get tags', async() => {
311+
nock('https://api.github.com')
312+
.persist()
313+
.get('/repos/hello/world/git/matching-refs/tags/')
314+
.reply(200, () => []);
315+
316+
expect(await helper.getNewMajorVersion()).toBe('v1.0.0');
317+
});
318+
});
279319
});
280320

281321
describe('ApiHelper without logger', () => {

__tests__/git-helper.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,32 @@ describe('GitHelper', () => {
708708
});
709709
});
710710

711+
describe('getNewMinorVersion', () => {
712+
it('should get new patch tag', async() => {
713+
setChildProcessParams({stdout: '1.2.3'});
714+
const mockExec = spyOnExec();
715+
716+
expect(await helper.getNewMinorVersion(workDir)).toBe('v1.3.0');
717+
718+
execCalledWith(mockExec, [
719+
'git tag',
720+
]);
721+
});
722+
});
723+
724+
describe('getNewMajorVersion', () => {
725+
it('should get new patch tag', async() => {
726+
setChildProcessParams({stdout: '1.2.3'});
727+
const mockExec = spyOnExec();
728+
729+
expect(await helper.getNewMajorVersion(workDir)).toBe('v2.0.0');
730+
731+
execCalledWith(mockExec, [
732+
'git tag',
733+
]);
734+
});
735+
});
736+
711737
describe('useOrigin', () => {
712738
it('should use origin', async() => {
713739
setExists(false);

__tests__/utils.test.ts renamed to __tests__/utils1.test.ts

Lines changed: 3 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import path from 'path';
33
import { testEnv, getContext, testFs } from '@technote-space/github-action-test-helper';
44
import { Utils } from '../src';
55

6-
const {getWorkspace, getActor, escapeRegExp, getRegExp, getPrefixRegExp, getSuffixRegExp, useNpm, versionCompare, getOctokit} = Utils;
7-
const {isSemanticVersioningTagName, isPrRef, getPrMergeRef, getBoolValue, replaceAll, getPrHeadRef, arrayChunk, sleep} = Utils;
8-
const {getBranch, getRefForUpdate, uniqueArray, getBuildInfo, split, getArrayInput, generateNewPatchVersion, getPrBranch} = Utils;
9-
const {isBranch, isTagRef, normalizeRef, trimRef, getTag, getRefspec, getRemoteRefspec, getLocalRefspec, mask} = Utils;
6+
const {getWorkspace, getActor, escapeRegExp, getRegExp, getPrefixRegExp, getSuffixRegExp, getPrBranch} = Utils;
7+
const {isSemanticVersioningTagName, isPrRef, getPrMergeRef, getBoolValue, replaceAll, getPrHeadRef} = Utils;
8+
const {getBranch, getRefForUpdate, uniqueArray, getBuildInfo, split, getArrayInput, useNpm, sleep} = Utils;
109

1110
jest.useFakeTimers();
1211

@@ -401,210 +400,3 @@ describe('replaceAll', () => {
401400
expect(replaceAll('test1;test2\\;test3', /[^\\];/, '\\;')).toBe('test\\;test2\\;test3');
402401
});
403402
});
404-
405-
describe('generateNewPatchVersion', () => {
406-
it('should generate new patch tag', () => {
407-
expect(generateNewPatchVersion('v1.2.3')).toBe('v1.2.4');
408-
expect(generateNewPatchVersion('v1')).toBe('v1.0.1');
409-
expect(generateNewPatchVersion('v1.2')).toBe('v1.2.1');
410-
expect(generateNewPatchVersion('v1.2.3.4')).toBe('v1.2.3.5');
411-
expect(generateNewPatchVersion('1.2.3')).toBe('v1.2.4');
412-
});
413-
414-
it('should throw error', () => {
415-
expect(() => {
416-
generateNewPatchVersion('');
417-
}).toThrow();
418-
expect(() => {
419-
generateNewPatchVersion('test');
420-
}).toThrow();
421-
});
422-
});
423-
424-
describe('arrayChunk', () => {
425-
it('should split array', () => {
426-
expect(arrayChunk([])).toEqual([]);
427-
expect(arrayChunk([1, 2, 3])).toEqual([[1, 2, 3]]);
428-
expect(arrayChunk([1, 2, 3, 4, 5, 6, 7], 3)).toEqual([[1, 2, 3], [4, 5, 6], [7]]);
429-
});
430-
});
431-
432-
describe('versionCompare', () => {
433-
it('should return 0', () => {
434-
expect(versionCompare('v1.2.3', 'v1.2.3')).toBe(0);
435-
expect(versionCompare('v1.2.3', '1.2.3')).toBe(0);
436-
expect(versionCompare('1.2.3', 'v1.2', false)).toBe(0);
437-
expect(versionCompare('v1.2.3', 'v1', false)).toBe(0);
438-
expect(versionCompare('v1', 'v1.2', false)).toBe(0);
439-
});
440-
441-
it('should return 1', () => {
442-
expect(versionCompare('v1.2.3', 'v1.2.2')).toBe(1);
443-
expect(versionCompare('v1.2.3', '1.2.2')).toBe(1);
444-
expect(versionCompare('1.2.3', 'v1.2')).toBe(1);
445-
expect(versionCompare('v1.2.3.0', 'v1.2.3')).toBe(1);
446-
expect(versionCompare('v1.2.3', 'v1.2.2', false)).toBe(1);
447-
});
448-
449-
it('should return -1', () => {
450-
expect(versionCompare('v1.2.3', 'v1.2.4')).toBe(-1);
451-
expect(versionCompare('v1.2.3', '1.2.4')).toBe(-1);
452-
expect(versionCompare('1.2', 'v1.2.3')).toBe(-1);
453-
expect(versionCompare('v1.2.3', 'v1.2.3.0')).toBe(-1);
454-
expect(versionCompare('v1.2.3', 'v1.2.4', false)).toBe(-1);
455-
});
456-
});
457-
458-
describe('getOctokit', () => {
459-
testEnv();
460-
461-
it('should use env token', () => {
462-
process.env.INPUT_GITHUB_TOKEN = 'input token';
463-
expect(() => getOctokit()).not.toThrow();
464-
});
465-
466-
it('should use input token', () => {
467-
expect(() => getOctokit('input token')).not.toThrow();
468-
});
469-
470-
it('should throw error', () => {
471-
expect(() => getOctokit()).toThrow();
472-
});
473-
});
474-
475-
describe('isBranch', () => {
476-
it('should return true', () => {
477-
expect(isBranch('refs/heads/master')).toBe(true);
478-
});
479-
480-
it('should return false', () => {
481-
expect(isBranch('test')).toBe(false);
482-
expect(isBranch('heads')).toBe(false);
483-
});
484-
});
485-
486-
describe('isTagRef', () => {
487-
it('should return true', () => {
488-
expect(isTagRef('refs/tags/v1.2.3')).toBe(true);
489-
});
490-
491-
it('should return false', () => {
492-
expect(isTagRef('refs/heads/master')).toBe(false);
493-
expect(isTagRef('heads/master')).toBe(false);
494-
});
495-
});
496-
497-
describe('normalizeRef', () => {
498-
it('should normalize ref', () => {
499-
expect(normalizeRef('master')).toBe('refs/heads/master');
500-
expect(normalizeRef('refs/heads/master')).toBe('refs/heads/master');
501-
expect(normalizeRef('refs/tags/v1.2.3')).toBe('refs/tags/v1.2.3');
502-
expect(normalizeRef('refs/pull/123/merge')).toBe('refs/pull/123/merge');
503-
});
504-
});
505-
506-
describe('trimRef', () => {
507-
it('should trim ref', () => {
508-
expect(trimRef('master')).toBe('master');
509-
expect(trimRef('refs/heads/master')).toBe('master');
510-
expect(trimRef('refs/tags/v1.2.3')).toBe('v1.2.3');
511-
expect(trimRef('refs/pull/123/merge')).toBe('123/merge');
512-
});
513-
});
514-
515-
describe('getTag', () => {
516-
it('should get tag', () => {
517-
expect(getTag('master')).toBe('');
518-
expect(getTag('heads/master')).toBe('');
519-
expect(getTag('refs/heads/master')).toBe('');
520-
expect(getTag('refs/tags/v1.2.3')).toBe('v1.2.3');
521-
expect(getTag('refs/pull/123/merge')).toBe('');
522-
});
523-
});
524-
525-
describe('getRefspec', () => {
526-
it('should get refspec', () => {
527-
expect(getRefspec('master')).toBe('refs/heads/master:refs/remotes/origin/master');
528-
expect(getRefspec('refs/heads/master', 'test')).toBe('refs/heads/master:refs/remotes/test/master');
529-
expect(getRefspec('refs/tags/v1.2.3')).toBe('refs/tags/v1.2.3:refs/tags/v1.2.3');
530-
expect(getRefspec('refs/pull/123/merge')).toBe('refs/pull/123/merge:refs/pull/123/merge');
531-
});
532-
});
533-
534-
describe('getRemoteRefspec', () => {
535-
it('should get remote refspec', () => {
536-
expect(getRemoteRefspec('master')).toBe('refs/heads/master');
537-
expect(getRemoteRefspec('refs/heads/master')).toBe('refs/heads/master');
538-
expect(getRemoteRefspec('refs/tags/v1.2.3')).toBe('refs/tags/v1.2.3');
539-
expect(getRemoteRefspec('refs/pull/123/merge')).toBe('refs/pull/123/merge');
540-
});
541-
});
542-
543-
describe('getLocalRefspec', () => {
544-
it('should get remote refspec', () => {
545-
expect(getLocalRefspec('master')).toBe('origin/master');
546-
expect(getLocalRefspec('refs/heads/master', 'test')).toBe('test/master');
547-
expect(getLocalRefspec('refs/tags/v1.2.3')).toBe('tags/v1.2.3');
548-
expect(getLocalRefspec('refs/pull/123/merge')).toBe('pull/123/merge');
549-
});
550-
});
551-
552-
describe('mask', () => {
553-
it('should remove token', () => {
554-
expect(mask({})).toEqual({});
555-
expect(mask({
556-
token: 'test',
557-
test1: null,
558-
test2: undefined,
559-
})).toEqual({
560-
token: '***',
561-
test1: null,
562-
test2: undefined,
563-
});
564-
expect(mask({
565-
test1: {
566-
token: 'test',
567-
},
568-
test2: 2,
569-
test3: {
570-
test: 3,
571-
572-
},
573-
})).toEqual({
574-
test1: {
575-
token: '***',
576-
},
577-
test2: 2,
578-
test3: {
579-
test: 3,
580-
},
581-
});
582-
expect(mask({
583-
abc: 'test',
584-
test1: {
585-
abc: 'test',
586-
test2: 2,
587-
test3: 3,
588-
test4: {
589-
test5: {
590-
abc: 'test',
591-
test6: 6,
592-
},
593-
},
594-
},
595-
}, 'abc')).toEqual({
596-
abc: '***',
597-
test1: {
598-
abc: '***',
599-
test2: 2,
600-
test3: 3,
601-
test4: {
602-
test5: {
603-
abc: '***',
604-
test6: 6,
605-
},
606-
},
607-
},
608-
});
609-
});
610-
});

0 commit comments

Comments
 (0)