<?xml version="1.0" encoding="UTF-8"?>
<project name="JavaScript Build">
    <target name="yarn:test" unless="${production}" extensionOf="-test-unit:main~hook">
        <tool-exists executable="yarn" />

        <exec executable="yarn" failonerror="true" dir="${basedir}">
            <env key="CI" value="true" />

            <arg value="run" />
            <arg value="test" />
        </exec>
    </target>

    <target name="yarn:check" unless="${production}" extensionOf="-test-static:main~hook">
        <tool-exists executable="yarn" />

        <exec executable="yarn" failonerror="true" dir="${basedir}">
            <env key="CI" value="true" />

            <arg value="run" />
            <arg value="check" />
        </exec>
    </target>

    <target name="yarn:package" unless="${production}" extensionOf="-package:before~hook">
        <tool-exists executable="yarn" />

        <exec executable="yarn" failonerror="true" dir="${basedir}">
            <env key="CI" value="true" />

            <arg value="run" />
            <arg value="build" />
        </exec>

        <!-- git directly fails if it can't acquire it's lock, but it might be that some other component does a git operation at the same time. In this case it's better to wait for the lock than directly fail. -->
        <exec executable="flock" failonerror="true" dir="${basedir}">
            <arg value="--timeout" />
            <arg value="5" />
            <arg value="${frontastic_basedir}/git-flock.lock" />
            <arg value="git" />
            <arg value="add" />
            <arg value="${basedir}/src/js/frontastic-common.js" />
        </exec>
    </target>
</project>
