Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
233 righe
6.4 KiB
233 righe
6.4 KiB
2 anni fa
|
<?xml version="1.0"?>
|
||
|
<!DOCTYPE project>
|
||
|
|
||
|
<project name="build-common-plugins-inspector.xml">
|
||
|
<macrodef name="record-fail">
|
||
|
<attribute name="message" />
|
||
|
|
||
|
<sequential>
|
||
|
<echo append="true" file="../plugins-inspector.log">@{message}${line.separator}</echo>
|
||
|
</sequential>
|
||
|
</macrodef>
|
||
|
|
||
|
<target name="inspect-plugins">
|
||
|
<delete file="../plugins-inspector.log" />
|
||
|
|
||
|
<checksum file="build.xml" property="build.xml.checksum" />
|
||
|
|
||
|
<if>
|
||
|
<not>
|
||
|
<equals arg1="${build.xml.checksum}" arg2="aa45183ecb2cda43d255c7070a6225de" />
|
||
|
</not>
|
||
|
<then>
|
||
|
<record-fail message="build.xml is nonstandard." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<exec dir="." executable="git">
|
||
|
<arg line="clean -d -f -x ." />
|
||
|
</exec>
|
||
|
|
||
|
<trycatch>
|
||
|
<try>
|
||
|
<antcall target="clean" />
|
||
|
</try>
|
||
|
<catch>
|
||
|
<record-fail message="Unable to clean all plugins." />
|
||
|
</catch>
|
||
|
</trycatch>
|
||
|
|
||
|
<trycatch>
|
||
|
<try>
|
||
|
<antcall target="compile" />
|
||
|
</try>
|
||
|
<catch>
|
||
|
<record-fail message="Unable to compile all plugins." />
|
||
|
</catch>
|
||
|
</trycatch>
|
||
|
|
||
|
<for param="module.name">
|
||
|
<path>
|
||
|
<dirset dir="." includes="*" />
|
||
|
</path>
|
||
|
<sequential>
|
||
|
<if>
|
||
|
<and>
|
||
|
<available file="@{module.name}/docroot" />
|
||
|
<available file="@{module.name}/src" />
|
||
|
</and>
|
||
|
<then>
|
||
|
<record-fail message="Module @{module.name} must not have both a "docroot" and a "src" directory." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<and>
|
||
|
<not>
|
||
|
<available file="@{module.name}/docroot" />
|
||
|
</not>
|
||
|
<not>
|
||
|
<available file="@{module.name}/src" />
|
||
|
</not>
|
||
|
</and>
|
||
|
<then>
|
||
|
<record-fail message="Module @{module.name} must have a "docroot" or a "src" directory." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<available file="@{module.name}/docroot/WEB-INF/liferay-hook.xml" />
|
||
|
<then>
|
||
|
<if>
|
||
|
<and>
|
||
|
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="<language-properties>" />
|
||
|
<not>
|
||
|
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="<language-properties>content/Language*.properties</language-properties>" />
|
||
|
</not>
|
||
|
</and>
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/docroot/WEB-INF/liferay-hook.xml has an nonstandard language-properties element." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<and>
|
||
|
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="<custom-jsp-dir>" />
|
||
|
<not>
|
||
|
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="<custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>" />
|
||
|
</not>
|
||
|
</and>
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/docroot/WEB-INF/liferay-hook.xml has a nonstandard custom-jsp-dir element." />
|
||
|
</then>
|
||
|
</if>
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<resourcecontains resource="@{module.name}/docroot/WEB-INF/web.xml" substring="Invoker Filter" />
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/docroot/WEB-INF/web.xml contains generated code." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<available file="@{module.name}/ivy.xml.MD5" />
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/ivy.xml.MD5 must not be checked into source control." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<available file="@{module.name}/docroot/WEB-INF/lib" />
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/docroot/WEB-INF/lib must not be checked into source control." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<available file="@{module.name}/docroot/WEB-INF/tld" />
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/docroot/WEB-INF/tld must not be checked into source control." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<available file="@{module.name}/lib" />
|
||
|
<then>
|
||
|
<record-fail message="@{module.name}/lib must not be checked into source control." />
|
||
|
</then>
|
||
|
</if>
|
||
|
</sequential>
|
||
|
</for>
|
||
|
|
||
|
<exec dir="." executable="git" outputproperty="git.command.output">
|
||
|
<arg line="status ." />
|
||
|
</exec>
|
||
|
|
||
|
<if>
|
||
|
<available file=".gitignore" />
|
||
|
<then>
|
||
|
<echo file=".gitignore">/*/bin
|
||
|
/*/classes
|
||
|
/*/ivy.xml.MD5
|
||
|
/*/javadoc
|
||
|
/*/lib
|
||
|
/*/test-classes
|
||
|
/*/test-results</echo>
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<resourcecount count="0" when="gt">
|
||
|
<fileset defaultexcludes="false" dir="." includes="**/.gitignore" />
|
||
|
</resourcecount>
|
||
|
<then>
|
||
|
<record-fail message="Plugins must not have custom .gitignore files." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<if>
|
||
|
<or>
|
||
|
<contains string="${git.command.output}" substring="Changes not staged for commit" />
|
||
|
<contains string="${git.command.output}" substring="Untracked files" />
|
||
|
</or>
|
||
|
<then>
|
||
|
<record-fail message="Plugins must not generate modified files." />
|
||
|
</then>
|
||
|
</if>
|
||
|
|
||
|
<trycatch>
|
||
|
<try>
|
||
|
<loadfile property="plugins-inspector.log.content" srcFile="../plugins-inspector.log" />
|
||
|
|
||
|
<if>
|
||
|
<equals arg1="${basedir.name}" arg2="test-broken" />
|
||
|
<then>
|
||
|
<checksum file="../plugins-inspector.log" property="plugins-inspector.log.actual.checksum" />
|
||
|
<property name="plugins-inspector.log.expected.checksum" value="20988e2ed40f504cbc58c773e24b7fe5" />
|
||
|
|
||
|
<if>
|
||
|
<not>
|
||
|
<equals arg1="${plugins-inspector.log.actual.checksum}" arg2="${plugins-inspector.log.expected.checksum}" />
|
||
|
</not>
|
||
|
<then>
|
||
|
<copy file="../plugins-inspector.log" tofile="../plugins-inspector.log.test-broken" />
|
||
|
|
||
|
<echo>${plugins-inspector.log.content}</echo>
|
||
|
|
||
|
<fail>Plugins inspector is not detecting all errors. Expected "${plugins-inspector.log.expected.checksum}" but found "${plugins-inspector.log.actual.checksum}".</fail>
|
||
|
</then>
|
||
|
</if>
|
||
|
</then>
|
||
|
<elseif>
|
||
|
<equals arg1="${basedir.name}" arg2="test-working" />
|
||
|
<then>
|
||
|
<if>
|
||
|
<available file="../plugins-inspector.log" />
|
||
|
<then>
|
||
|
<echo>${plugins-inspector.log.content}</echo>
|
||
|
|
||
|
<fail>Plugins inspector is not detecting false errors.</fail>
|
||
|
</then>
|
||
|
</if>
|
||
|
</then>
|
||
|
</elseif>
|
||
|
<else>
|
||
|
<if>
|
||
|
<available file="../plugins-inspector.log" />
|
||
|
<then>
|
||
|
<echo>${plugins-inspector.log.content}</echo>
|
||
|
|
||
|
<fail>Plugins inspector detected errors.</fail>
|
||
|
</then>
|
||
|
</if>
|
||
|
</else>
|
||
|
</if>
|
||
|
</try>
|
||
|
<finally>
|
||
|
<delete file="../plugins-inspector.log" />
|
||
|
</finally>
|
||
|
</trycatch>
|
||
|
</target>
|
||
|
</project>
|