Jenkins 多代理和 Git

Jenkins 多代理和 Git

我已经使用 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)。

相关内容