我已经使用 Jenkins 很多年了,但我从未需要多个代理来完成我的任务。就在最近,我发现需要添加另一个代理,它不是 Linux 而是 Windows。现在,这个节点已经准备好了一切;Git 也安装了。然而,当我运行 Jenkins 作业时,它给出了一个错误。
[Pipeline] checkout
所选的 Git 安装不存在。使用默认推荐的 git 工具为:NONE 使用凭证 bitbucket-creds
/usr/bin/git rev-parse --resolve-git-dir c:\jenkins\workspace\prod-init-qa-job.git # timeout=10 错误:Workspace 有一个 .git 存储库,但它似乎已损坏。 hudson.plugins.git.GitException:执行 git 命令时出错:/usr/bin/git rev-parse --resolve-git-dir c:\jenkins\workspace\prod-init-qa-job.git at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2858) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2762) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2757)
管道非常简单。看起来像这样
pipeline {
agent {
label 'win-agent1'
}
stages {
stage('Execute QA Job') {
steps {
dir('ansible-code') {
git branch: 'main',
changelog: false,
credentialsId: 'bitbucket-creds',
poll: false,
url: 'https://[email protected]/xys/ansible.git'
}
sh "ansible-playbook -i ansible-code/qa-ais-pipeline/inv.ini ansible-code/qa-ais-pipeline/init-qa-job.yaml"
bat "python c:\\qa-code\\OldSmokeTest.py"
}
}
}
}
答案1
由于在继承环境之前 Jenkins Git 插件无法识别 Git,因此在我的 Jenkins Windows 从属服务器上出现了此问题。要解决此问题,请确保从属服务器的 PATH 包含 Git 可执行文件,方法是导航到从属服务器配置,验证“节点属性”下的工具位置,然后输入 git 可执行文件的完整路径(包括 git.exe)。