Using Jenkins Pipeline I changed the Repository URL from http to ssh git access. After doing that the job is not working anymore (before that all worked correctly).
Down below the logs:
:xxxxxx:checkUpdateNeeded
Running [git, remote, update] produced an error: [Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
error: Could not fetch origin]
:xxxxxx:checkUpdateNeeded FAILED
:release FAILED
Release process failed, reverting back any changes made by Release Plugin.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':checkUpdateNeeded'.
> Failed to run [git remote update] - [Fetching origin
][Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
error: Could not fetch origin
]
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
The SSH RSA Key is correctly working because: - I configured correctly on our Bitbucket server in order to Read/Write on that repo - I added the key into ssh-agent - I can clone and commit directly from the server where the jenkins job is executed.
This is the gradle build file section:
....
release {
versionPropertyFile="${rootDir}/gradle.properties"
failOnCommitNeeded=false
git{
requireBranch="releases/.*|master"
}
tagTemplate = 'T-'+new Date().format('yy.MM')+'-${version}'
}
task publishRelease(type: GradleBuild) {
tasks = ['publishMavenJavaPublicationToReleaseRepository']
startParameter.projectProperties = [nexusUser: nexusUser, nexusPassword: nexusPassword]
}
....
I can clone and commit directly from the server where the jenkins job is executed.
Then Jenkins should too, provided:
- it is executed with the same user
- and the SSH key is the default one ~/.ssh/id_rsa.
If any of those two conditions is not met, you need to specify the exact path of the private key, using the Jenkins SSH Credentials Plugin.
来源:https://stackoverflow.com/questions/49261053/ssh-git-access-using-gradle-release-plugin