Извините за название, так как я понятия не имею, что это должно быть.
Я использую Ant для выполнения php lint для Jenkins CI, и процесс кэширует результаты (cache.properties). Однако, если файл не изменяется, то следующий проход не завершится неудачно, но это должно произойти, поскольку файл по-прежнему недействителен. Это нормальное поведение? Как я могу сказать ему не кэшировать сбойный файл или есть другой способ решить эту проблему?
Это решение, которое я придумала (я использую Jenkins на Windows, поэтому настройте ОС соответственно):
Установите плагин: Задача пост-сборки (она старая, поэтому она будет установлена как задача пост-сборки Hudson Post).
Сконфигурируйте задачу Post build (это раздел) под названием Post build task (плагин) следующим образом:
Текст журнала: Разбор ошибок
Скрипт: del cache.properties
Неуклюжий, но это работает.
Я бы порекомендовал перейти на другой php linter .. например, если вы используете возвышенный текст => https://packagecontrol.io/packages/SublimeLinter-phplint
У меня была проблема, похожая на эту, что я сделал, чтобы удалить <modified />
узел из набора файлов для цели lint. Смотрите пример ниже.
Это то, что у меня было, когда я столкнулся с проблемой
<target name="lint"unless="lint.done"description="Perform syntax check of sourcecode files">
<apply executable="php" taskname="lint">
<arg value="-l" />
<fileset dir="${basedir}/src">
<include name="**/*.php" />
<modified />
</fileset>
<fileset dir="${basedir}/tests">
<include name="**/*.php" />
<modified />
</fileset>
</apply>
<property name="lint.done" value="true"/>
</target>
Вот как сейчас выглядит моя цель.
<target name="lint"unless="lint.done"description="Perform syntax check of sourcecode files">
<apply executable="php" taskname="lint">
<arg value="-l" />
<fileset dir="${basedir}/src">
<include name="**/*.php" />
</fileset>
<fileset dir="${basedir}/tests">
<include name="**/*.php" />
</fileset>
</apply>
<property name="lint.done" value="true"/>
</target>
Я надеюсь, что это помогает кому-то