Укажите команды git в плагине Jenkins Git

Я написал следующую цель для извлечения кода из репозитория GitHub.

<target name="fetch" description="Fetching the Source Code">
  <echo message="-------------------------------------------------------------"/>
  <echo message="Fetching Latest from ${build.git.organization}/${build.git.repository} ${build.git.branch}"/>  
  <echo message="-------------------------------------------------------------"/>
  <exec executable="git" dir="${build.source.location}\${build.git.repository}" failonerror="true">
      <arg line="fetch ${build.git.organization}/${build.git.repository} ${build.git.branch}"/>
  </exec>
</target>

Цель работает нормально, когда я запускаю ее из командной строки. Однако, когда я пытаюсь запустить его из Jenkins, происходит сбой со следующей ошибкой:

BUILD FAILED C: \ Users \ PJai12 \ test \ build.xml: 66: Ошибка выполнения: java.io.IOException: не удается запустить программу "git": ошибка CreateProcess =2, система не может найти файл, указанный в java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) в java.lang.Runtime.exec(Runtime.java:620) в org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58) или.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428) в org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442) в org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629) в org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:670) в org.apache.tools.ant.taskdefs.ExecTask.execuk (Exec):496) в org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethoIto) sun.reflect.DelegatingMethodAccessorImpl.invoke(Делегирование MethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:498) в org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) в org.apache.tools.ant.Task.perform(Task.java:348) в org.apache.tools.ant.Target.execute(Target.java:435) в org.apache.tools.ant.Target.performTasks(Target.java:456) в org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) в org.apache.tools.ant.Project.executeTarget(Project.java:1376) в org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) в org.apache.tools.ant.Project.executeTargets(Project.java:1260) в org.apache.tools.ant.Main.runBuild(Main.java:853) в org.apache.tools.ant.Main.startAnt(Main.java:235) в org.apache.tools.ant.launch.Launcher.run(Launcher.java:285) в org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)

Чтобы убедиться, что Jenkins правильно настроен с использованием git path и ssh credentails, я создал другую работу. Задание просто опрашивает scm из того же хранилища через плагин Jenkins GitHub. Работало нормально.

Вот конфигурация GIT в Jenkins: https://imgur.com/a/noFJ9M4

1 ответ

Исполняемый файл должен иметь полный путь к исполняемому файлу Git.

<exec executable="PATH_TO_GIT_EXE" dir="${build.source.location}\${build.git.repository}" failonerror="true">
Другие вопросы по тегам