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
<?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> |