11
2+ async function execa ( command , params ) {
3+ const { spawn } = require ( 'child_process' ) ;
4+ const child = spawn ( command , params ) ;
5+
6+ let data = '' ;
7+ for await ( const chunk of child . stdout ) {
8+ //console.log('stdout chunk: ' + chunk);
9+ data += chunk ;
10+ }
11+ let error = '' ;
12+ for await ( const chunk of child . stderr ) {
13+ //console.error('stderr chunk: ' + chunk);
14+ error += chunk ;
15+ }
16+ const exitCode = await new Promise ( ( resolve , reject ) => {
17+ child . on ( 'close' , resolve ) ;
18+ } ) ;
19+
20+ if ( exitCode ) {
21+ throw new Error ( `subprocess error exit ${ exitCode } , ${ error } ` ) ;
22+ }
23+ return data ;
24+ }
225function getDependences ( scope ) {
326 const dependencies = {
427 xml : {
@@ -178,6 +201,7 @@ module.exports = async ({ github, context, core }) => {
178201 console . log ( "branch:" , branch ) ;
179202 console . log ( "eventName:" , context . eventName ) ;
180203
204+ const branchs = [ 'next' , 'beta' , 'alpha' , 'dev' ]
181205 const eventName = context . eventName
182206 let commits = context . payload . commits || [ ] ;
183207
@@ -195,18 +219,24 @@ module.exports = async ({ github, context, core }) => {
195219 commits = commits_local . map ( ( { commit} ) => commit )
196220 }
197221 const scopes = getScopes ( commits ) ;
198- console . log ( "scopes from commits" , scopes ) ;
199-
200- // Filtrar scopes que no tienen shouldPublish: true
201- const rushJson = JSON . parse ( require ( 'fs' ) . readFileSync ( './rush.json' , 'utf8' ) ) ;
202- const publishablePolicies = new Set (
203- rushJson . projects
204- . filter ( p => p . shouldPublish && p . versionPolicyName )
205- . map ( p => p . versionPolicyName )
206- ) ;
207- const filteredScopes = scopes . filter ( s => publishablePolicies . has ( s ) ) ;
208- console . log ( "publishable scopes" , filteredScopes ) ;
222+ console . log ( "commits" , scopes ) ;
209223
210- core . setOutput ( 'scopes' , JSON . stringify ( filteredScopes ) ) ;
211- core . setOutput ( 'branch' , branch ) ;
224+ for ( var i = 0 ; i < scopes . length ; i ++ ) {
225+ const scope = scopes [ i ] ;
226+ const comands = [
227+ 'version' ,
228+ '--version-policy' ,
229+ scope ,
230+ '--bump' ,
231+ ]
232+ if ( branchs . includes ( branch ) ) {
233+ comands . push ( '--override-bump' ) ;
234+ comands . push ( 'prerelease' ) ;
235+ comands . push ( '--override-prerelease-id' ) ;
236+ comands . push ( branch ) ;
237+ }
238+ console . log ( comands ) ;
239+ const data = await execa ( 'rush' , comands ) ;
240+ console . log ( data ) ;
241+ }
212242} ;
0 commit comments