1- import { type IBuildAgent } from '@agents/common'
1+ import { type ExecResult , type IBuildAgent } from '@agents/common'
22import { type IRunner } from '@tools/common'
33import { type Commands } from './models'
44import { GitReleaseManagerTool } from './tool'
@@ -10,7 +10,7 @@ export class Runner implements IRunner {
1010 this . gitReleaseManagerTool = new GitReleaseManagerTool ( this . buildAgent )
1111 }
1212
13- async run ( command : Commands ) : Promise < number > {
13+ async run ( command : Commands ) : Promise < ExecResult > {
1414 switch ( command ) {
1515 case 'setup' :
1616 return await this . setup ( )
@@ -29,7 +29,7 @@ export class Runner implements IRunner {
2929 }
3030 }
3131
32- private async setup ( ) : Promise < number > {
32+ private async setup ( ) : Promise < ExecResult > {
3333 try {
3434 this . disableTelemetry ( )
3535
@@ -41,120 +41,143 @@ export class Runner implements IRunner {
4141 this . buildAgent . setVariable ( pathVariable , toolPath )
4242
4343 this . buildAgent . setSucceeded ( 'GitReleaseManager installed successfully' , true )
44- return 0
44+ return {
45+ code : 0
46+ }
4547 } catch ( error ) {
4648 if ( error instanceof Error ) {
4749 this . buildAgent . setFailed ( error . message , true )
4850 }
49- return - 1
51+ return {
52+ code : - 1 ,
53+ error
54+ }
5055 }
5156 }
5257
53- private async create ( ) : Promise < number > {
58+ private async create ( ) : Promise < ExecResult > {
5459 try {
5560 this . disableTelemetry ( )
5661
5762 this . buildAgent . debug ( 'Creating release' )
5863
59- await this . gitReleaseManagerTool . create ( )
64+ const result = await this . gitReleaseManagerTool . create ( )
6065
6166 this . buildAgent . setSucceeded ( 'GitReleaseManager created release successfully' , true )
62- return 0
67+ return result
6368 } catch ( error ) {
6469 if ( error instanceof Error ) {
6570 this . buildAgent . setFailed ( error . message , true )
6671 }
67- return - 1
72+ return {
73+ code : - 1 ,
74+ error
75+ }
6876 }
6977 }
7078
71- private async discard ( ) : Promise < number > {
79+ private async discard ( ) : Promise < ExecResult > {
7280 try {
7381 this . disableTelemetry ( )
7482
7583 this . buildAgent . debug ( 'Discarding release' )
7684
77- await this . gitReleaseManagerTool . discard ( )
85+ const result = await this . gitReleaseManagerTool . discard ( )
7886
7987 this . buildAgent . setSucceeded ( 'GitReleaseManager discarded release successfully' , true )
80- return 0
88+ return result
8189 } catch ( error ) {
8290 if ( error instanceof Error ) {
8391 this . buildAgent . setFailed ( error . message , true )
8492 }
85- return - 1
93+ return {
94+ code : - 1 ,
95+ error
96+ }
8697 }
8798 }
8899
89- private async close ( ) : Promise < number > {
100+ private async close ( ) : Promise < ExecResult > {
90101 try {
91102 this . disableTelemetry ( )
92103
93104 this . buildAgent . debug ( 'Closing release' )
94105
95- await this . gitReleaseManagerTool . close ( )
106+ const result = await this . gitReleaseManagerTool . close ( )
96107
97108 this . buildAgent . setSucceeded ( 'GitReleaseManager closed release successfully' , true )
98- return 0
109+ return result
99110 } catch ( error ) {
100111 if ( error instanceof Error ) {
101112 this . buildAgent . setFailed ( error . message , true )
102113 }
103- return - 1
114+ return {
115+ code : - 1 ,
116+ error
117+ }
104118 }
105119 }
106120
107- private async open ( ) : Promise < number > {
121+ private async open ( ) : Promise < ExecResult > {
108122 try {
109123 this . disableTelemetry ( )
110124
111125 this . buildAgent . debug ( 'Opening release' )
112126
113- await this . gitReleaseManagerTool . open ( )
127+ const result = await this . gitReleaseManagerTool . open ( )
114128
115129 this . buildAgent . setSucceeded ( 'GitReleaseManager opened release successfully' , true )
116- return 0
130+ return result
117131 } catch ( error ) {
118132 if ( error instanceof Error ) {
119133 this . buildAgent . setFailed ( error . message , true )
120134 }
121- return - 1
135+ return {
136+ code : - 1 ,
137+ error
138+ }
122139 }
123140 }
124141
125- private async publish ( ) : Promise < number > {
142+ private async publish ( ) : Promise < ExecResult > {
126143 try {
127144 this . disableTelemetry ( )
128145
129146 this . buildAgent . debug ( 'Publishing release' )
130147
131- await this . gitReleaseManagerTool . publish ( )
148+ const result = await this . gitReleaseManagerTool . publish ( )
132149
133150 this . buildAgent . setSucceeded ( 'GitReleaseManager published release successfully' , true )
134- return 0
151+ return result
135152 } catch ( error ) {
136153 if ( error instanceof Error ) {
137154 this . buildAgent . setFailed ( error . message , true )
138155 }
139- return - 1
156+ return {
157+ code : - 1 ,
158+ error
159+ }
140160 }
141161 }
142162
143- private async addAsset ( ) : Promise < number > {
163+ private async addAsset ( ) : Promise < ExecResult > {
144164 try {
145165 this . disableTelemetry ( )
146166
147167 this . buildAgent . debug ( 'Adding asset to release' )
148168
149- await this . gitReleaseManagerTool . addAsset ( )
169+ const result = await this . gitReleaseManagerTool . addAsset ( )
150170
151171 this . buildAgent . setSucceeded ( 'GitReleaseManager added assets to release successfully' , true )
152- return 0
172+ return result
153173 } catch ( error ) {
154174 if ( error instanceof Error ) {
155175 this . buildAgent . setFailed ( error . message , true )
156176 }
157- return - 1
177+ return {
178+ code : - 1 ,
179+ error
180+ }
158181 }
159182 }
160183
0 commit comments