@@ -31,13 +31,28 @@ module.exports.createTag = () => async context => {
31
31
// Only create tags on "master"
32
32
if ( thread . base . ref !== context . payload . repository . default_branch ) return
33
33
34
- const { data } = await context . github . repos . listTags ( context . repo ( { per_page : 1 } ) )
34
+ const isMajor = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'major' ) )
35
+ const isMinor = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'minor' ) )
36
+ const isPatch = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'patch' ) )
35
37
36
- if ( ! ( data && data [ 0 ] && data [ 0 ] . name ) ) return
38
+ if ( ! ( isMajor || isMinor || isPatch ) ) {
39
+ const config = await getConfig ( context )
40
+ const isAutoPatch =
41
+ Array . isArray ( config . merges ) &&
42
+ config . merges . find ( c => {
43
+ const value = c . action || c
44
+ return typeof value === 'string' && value . trim ( ) . toLowerCase ( ) === TAG
45
+ } )
37
46
38
- const lastTag = data [ 0 ] . name
47
+ if ( ! isAutoPatch ) return
48
+ }
39
49
40
- const match = / ( v { 0 , 1 } ) ( \d + ) \. ( \d + ) \. ( \d + ) / . exec ( lastTag )
50
+ const { data } = await context . github . repos . listTags ( context . repo ( { per_page : 1 } ) )
51
+
52
+ const previousTag = data && data [ 0 ] && data [ 0 ] . name
53
+ if ( ! previousTag ) return
54
+
55
+ const match = / ( v { 0 , 1 } ) ( \d + ) \. ( \d + ) \. ( \d + ) / . exec ( previousTag )
41
56
42
57
if ( ! match ) return
43
58
@@ -48,27 +63,13 @@ module.exports.createTag = () => async context => {
48
63
patch : Number ( match [ 4 ] )
49
64
}
50
65
51
- const config = await getConfig ( context )
52
-
53
- const isMajor = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'major' ) )
54
- const isMinor = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'minor' ) )
55
- const isPatch = thread . labels . find ( ( { name } ) => name . toLowerCase ( ) . includes ( 'patch' ) )
56
- const isAutoPatch =
57
- Array . isArray ( config . merges ) &&
58
- config . merges . find ( c => {
59
- const value = c . action || c
60
- return typeof value === 'string' && value . trim ( ) . toLowerCase ( ) === TAG
61
- } )
62
-
63
66
let tag
64
67
if ( isMajor ) {
65
68
tag = `${ v . v } ${ v . major + 1 } .0.0`
66
69
} else if ( isMinor ) {
67
70
tag = `${ v . v } ${ v . major } .${ v . minor + 1 } .0`
68
- } else if ( isPatch || isAutoPatch ) {
69
- tag = `${ v . v } ${ v . major } .${ v . minor } .${ v . patch + 1 } `
70
71
} else {
71
- return
72
+ tag = ` ${ v . v } ${ v . major } . ${ v . minor } . ${ v . patch + 1 } `
72
73
}
73
74
74
75
const sha = thread . merge_commit_sha
0 commit comments