Почему я получаю BUILD SUCCESSFUL, когда у меня была ошибка?

Я экспериментирую с Дженкинсом и Муравьем. Я хотел бы просто запустить мой Makefile, который выполняет все, сборку и тесты.

Я понял, что лучше всего использовать Ant, потому что я становлюсь гибким с процессом сборки, аналогичным travis.yml,

К сожалению, используемый мной компилятор существует только в Windows, поэтому я установил Jenkins в Windows. Я написал это build.xml

<?xml version="1.0"?>
<project name="Hello World Project" default="info">

   <target name="info">
      <echo>Hello World - Welcome to Apache Ant!</echo>
      <exec executable="make"/>
   </target>

</project>

И вывод, который я получаю, таков:

C:\Program Files (x86)\Jenkins\workspace\test>exit 0 
[test] $ cmd.exe /C "ant.bat info && exit %%ERRORLEVEL%%"
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_131\lib\tools.jar
Buildfile: C:\Program Files (x86)\Jenkins\workspace\test\build.xml

info:
     [echo] Hello World - Welcome to Apache Ant!
     [exec] rm -f test_*.s
     [exec] arm-none-eabi-gcc.exe -O2 -Wall -S -c test.c -o test_gcc.s
     [exec] make: arm-none-eabi-gcc.exe: Command not found
     [exec] make: *** [Makefile:9: test_gcc.s] Error 127
     [exec] Result: 2

BUILD SUCCESSFUL
Total time: 0 seconds
Finished: SUCCESS

Почему я получаю BUILD SUCCESSFUL статус пока я получил ошибку?

NB. Я знаю, что мне нужно настроить PATH для включения набора инструментов. Я хотел бы сначала понять это несоответствие.

1 ответ

Решение

По умолчанию муравьи exec задача не завершает сборку при возврате кода ошибки. Однако это можно просто включить с помощью failonerror атрибут:

<exec executable="make" failonerror="true" />
Другие вопросы по тегам