view build.xml @ 495:7d3527fe4556 Faradi-7.1.x

Pass parent process environment when run mercurial Otherwise some commands don't work. E.g. 'hg identify' fails with the error 'Invalid Signature' somewhere inside random.pyc when trying to import module tempfiles, because of the lack of SystemRoot environment variable. More details here: http://mail.python.org/pipermail/python-bugs-list/2011-December/154012.html http://jpassing.com/2009/12/28/the-hidden-danger-of-forgetting-to-specify-systemroot-in-a-custom-environment-block/
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 24 Oct 2012 16:46:18 +0400
parents 643fa1236f4e
children 31a1aca3305c
line wrap: on
line source
<project name="Mercurial VCS Support" default="dist" basedir=".">
  <property file="mercurial.properties"/>
  <import file="mercurial.xml"/>

  <property name="distPath" value="${basedir}/dist"/>

  <property name="plugin.name" value="mercurial"/>

  <property name="build.number" value=""/>
  <tstamp>
    <format property="timestamp" pattern="yyyyMMddhhmmss"/>
  </tstamp>
  <property name="snapshot.build.number" value="SNAPSHOT-${timestamp}"/>
  <property name="build.vcs.number" value=""/>

  <condition property="plugin.version" value="${snapshot.build.number}" else="${build.number}">
    <matches pattern="snapshot-.*" string="${build.number}" casesensitive="false"/>
  </condition>

  <import file="teamcity-common.xml"/>

  <target name="package" depends="define.version">
    <package.teamcity.plugin name="${plugin.name}"
                             server.output="${mercurial-server.output.dir}"
                             agent.output="${mercurial-agent.output.dir}"
                             common.output="${mercurial-common.output.dir}"
                             plugin.descriptor.file="${basedir}/teamcity-plugin.xml"
                             plugin.version="${plugin.version}"/>
  </target>

  <target name="define.version" depends="define.version.if.under.teamcity">
    <tstamp>
      <format property="current.time" pattern="yyyyMMddHHmm"/>
    </tstamp>
    <property name="plugin.version" value="SNAPSHOT-${current.time}"/>
  </target>

  <target name="define.version.if.under.teamcity" if="build.number">
    <property name="plugin.version" value="${build.number}"/>
  </target>

  <target name="dist" depends="check.teamcitydistribution,all,package"/>

  <target name="deploy" depends="dist">
    <deploy.teamcity.plugin name="${plugin.name}"/>
  </target>

  <taskdef name="testng" classname="org.testng.TestNGAntTask" classpath="${basedir}/mercurial-tests/lib/testng-5.7-jdk15.jar"/>

  <path id="tests_classpath">
    <pathelement location="${agent.home.dir}/lib/runtime-util.jar"/>
    <pathelement location="${agent.home.dir}/lib/buildServerRuntimeUtil.jar"/>
    <path refid="mercurial-tests.runtime.module.classpath"/>
  </path>

  <target name="run-tests" depends="clean, init, compile.module.mercurial-tests">
    <property name="suspend" value="n"/>

    <testng haltonfailure="no" failureProperty="failure_found" listener="org.testng.reporters.TestHTMLReporter"
            outputdir="${basedir}/test-output" classpathref="tests_classpath" dumpcommand="true" workingDir="${basedir}">

      <jvmarg value="-ea"/>
      <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=${suspend},address=5555"/>-->

      <sysproperty key="java.awt.headless" value="true"/>

      <xmlfileset dir="${basedir}/mercurial-tests/src">
        <include name="testng.xml"/>
      </xmlfileset>
    </testng>
  </target>
</project>