Укажите команды git в плагине Jenkins Git - PullRequest
0 голосов
/ 22 января 2019

Я написал следующую цель для извлечения кода из репозитория 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) в org.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.execute (ExecTask.java:496) в org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:293) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.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 Ответ

0 голосов
/ 22 января 2019

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

<exec executable="PATH_TO_GIT_EXE" dir="${build.source.location}\${build.git.repository}" failonerror="true">
...