在构建之前,我们使用Jenkins git插件克隆带有凭据的git repo。
在构建结束时,如果成功,我们执行git push:
BRANCH_TO_PUSH=${GIT_BRANCH/origin\//} git push origin HEAD:refs/heads/${BRANCH_TO_PUSH}
有时 ,推送失败并显示以下输出:
fatal: could not read Username for 'https://git.example.net': Device not configured
如何解决这个问题?
当将回购配置为通过HTTPS克隆时,就会发生此问题。如果它只是偶尔发生,则意味着git被配置为使用凭据帮助程序在克隆时存储凭据。
但是,默认情况下,缓存设置为900秒(15分钟)。如果您的构建花费的时间更长,则推送将失败。
要将缓存TTL提高到60分钟,请在您的Jenkins机器上运行此命令:
sudo su - jenkins git config --global credential.helper 'cache --timeout=3600'