@@ -342,21 +342,26 @@ try {
342342    fs . appendFileSync ( `${ homeSsh }  ,  '\ngithub.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl\n' ) ; 
343343    fs . appendFileSync ( `${ homeSsh }  ,  '\ngithub.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==\n' ) ; 
344344
345-     console . log ( "Starting ssh-agent" ) ; 
346- 
347345    const  authSock  =  core . getInput ( 'ssh-auth-sock' ) ; 
348346    const  sshAgentArgs  =  ( authSock  &&  authSock . length  >  0 )  ? [ '-a' ,  authSock ]  : [ ] ; 
349347
350-     // Extract auth socket path and agent pid and set them as job variables 
351-     child_process . execFileSync ( sshAgent ,  sshAgentArgs ) . toString ( ) . split ( "\n" ) . forEach ( function ( line )  { 
352-         const  matches  =  / ^ ( S S H _ A U T H _ S O C K | S S H _ A G E N T _ P I D ) = ( .* ) ;   e x p o r t   \1/ . exec ( line ) ; 
353348
354-         if  ( matches  &&  matches . length  >  0 )  { 
355-             // This will also set process.env accordingly, so changes take effect for this script 
356-             core . exportVariable ( matches [ 1 ] ,  matches [ 2 ] ) 
357-             console . log ( `${ matches [ 1 ] } ${ matches [ 2 ] }  ) ; 
358-         } 
359-     } ) ; 
349+     if  ( child_process . spawnSync ( sshAdd ,  [ '-l' ] ,  {  env : {  ...process . env ,  SSH_AUTH_SOCK : authSock  ||  process . env . SSH_AUTH_SOCK  }  } ) . status  ===  0 )  { 
350+       console . log ( 'ssh-agent is already running, not starting a new one' ) 
351+     }  else  { 
352+       console . log ( "Starting ssh-agent" ) ; 
353+ 
354+        // Extract auth socket path and agent pid and set them as job variables 
355+       child_process . execFileSync ( sshAgent ,  sshAgentArgs ) . toString ( ) . split ( "\n" ) . forEach ( function ( line )  { 
356+           const  matches  =  / ^ ( S S H _ A U T H _ S O C K | S S H _ A G E N T _ P I D ) = ( .* ) ;   e x p o r t   \1/ . exec ( line ) ; 
357+ 
358+           if  ( matches  &&  matches . length  >  0 )  { 
359+               // This will also set process.env accordingly, so changes take effect for this script 
360+               core . exportVariable ( matches [ 1 ] ,  matches [ 2 ] ) 
361+               console . log ( `${ matches [ 1 ] } ${ matches [ 2 ] }  ) ; 
362+           } 
363+       } ) ; 
364+     } 
360365
361366    console . log ( "Adding private key(s) to agent" ) ; 
362367
0 commit comments