Hi all,
I've got a Jenkins build that runs a Capistrano deploy as a post-build
action.
Running the Capistrano task as the Jenkins user from the console works
absolutely fine and without a password prompt (I've previously set up SSH
keys on both build and staging server). However, when running the same
script through Jenkins, I suddenly get a password prompt and the build
subsequently fails (no TTY present).
[workspace] $ /bin/sh -xe /tmp/hudson7321493219694918714.sh
> Performing Post build task...
> Match found for : : True
> Logical operation result is TRUE
> Running script : cap _2.13.4_ deploy
> [workspace] $ /bin/sh -xe /tmp/hudson1545664641721322948.sh
> + cap _2.13.4_ deploy
> * executing `deploy'
> * executing `deploy:update'
> ** transaction: start
> * executing `deploy:update_code'
> triggering before callbacks for `deploy:update_code'
> [32m--> Updating code base with checkout strategy[0m
> executing locally: "git ls-remote
> [email protected]:my_project.git master"
> command finished in 1200ms
> * executing "git clone -q [email protected]:my_project.git
> /var/www/staging/my_project/releases/20121029223619 && cd
> /var/www/staging/my_project/releases/20121029223619 && git checkout -q -b
> deploy 1fb11d669a6cb5a714d077162305dfcfaba82f01 && (echo
> 1fb11d669a6cb5a714d077162305dfcfaba82f01 >
> /var/www/staging/my_project/releases/20121029223619/REVISION)"
> servers: ["my.staging-server.com"]
> Password: stty: standard input: Inappropriate ioctl for device
> stty: standard input: Inappropriate ioctl for device
> stty: standard input: Inappropriate ioctl for device
>
> *** [deploy:update_code] rolling back
> * executing "rm -rf
> /var/www/staging/my_project/releases/20121029223619; true"
> servers: ["my.staging-server.com"]
> ** [deploy:update_code] exception while rolling back:
> Capistrano::ConnectionError, connection failed for: my.staging-server.com
> (Net::SSH::AuthenticationFailed: not-specified)
> connection failed for: my.staging-server.com
> (Net::SSH::AuthenticationFailed: not-specified)
> POST BUILD TASK : FAILURE
It looks like Ruby doesn't pick my SSH key up when running through Jenkins
perhaps (`Net::SSH::AuthenticationFailed: not-specified`)?
Does anyone have an idea what might be going wrong here?