@@ -21,23 +21,27 @@ try {
21
21
fs . appendFileSync ( `${ homeSsh } /known_hosts` , '\ngithub.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=\n' ) ;
22
22
fs . appendFileSync ( `${ homeSsh } /known_hosts` , '\ngithub.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl\n' ) ;
23
23
fs . appendFileSync ( `${ homeSsh } /known_hosts` , '\ngithub.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==\n' ) ;
24
-
25
- console . log ( "Starting ssh-agent" ) ;
26
-
24
+
27
25
const authSock = core . getInput ( 'ssh-auth-sock' ) ;
28
26
const sshAgentArgs = ( authSock && authSock . length > 0 ) ? [ '-a' , authSock ] : [ ] ;
29
-
30
- // Extract auth socket path and agent pid and set them as job variables
31
- child_process . execFileSync ( sshAgent , sshAgentArgs ) . toString ( ) . split ( "\n" ) . forEach ( function ( line ) {
32
- 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 ) ;
33
-
34
- if ( matches && matches . length > 0 ) {
35
- // This will also set process.env accordingly, so changes take effect for this script
36
- core . exportVariable ( matches [ 1 ] , matches [ 2 ] )
37
- console . log ( `${ matches [ 1 ] } =${ matches [ 2 ] } ` ) ;
38
- }
39
- } ) ;
40
-
27
+
28
+ if ( child_process . spawnSync ( sshAdd , [ '-l' ] , { env : { ...process . env , SSH_AUTH_SOCK : authSock || env [ 'SSH_AUTH_SOCK' ] } } ) !== 0 ) {
29
+ console . log ( 'ssh-agent is already running, not starting a new one' )
30
+ } else {
31
+ console . log ( "Starting ssh-agent" ) ;
32
+
33
+ // Extract auth socket path and agent pid and set them as job variables
34
+ child_process . execFileSync ( sshAgent , sshAgentArgs ) . toString ( ) . split ( "\n" ) . forEach ( function ( line ) {
35
+ 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 ) ;
36
+
37
+ if ( matches && matches . length > 0 ) {
38
+ // This will also set process.env accordingly, so changes take effect for this script
39
+ core . exportVariable ( matches [ 1 ] , matches [ 2 ] )
40
+ console . log ( `${ matches [ 1 ] } =${ matches [ 2 ] } ` ) ;
41
+ }
42
+ } ) ;
43
+ }
44
+
41
45
console . log ( "Adding private key(s) to agent" ) ;
42
46
43
47
privateKey . split ( / (? = - - - - - B E G I N ) / ) . forEach ( function ( key ) {
0 commit comments