custom-build/MRPP_CustomBuild.xml (14 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <meta-runner name="Custom Build"> <description>Triggers a build with custom parameters</description> <settings> <parameters> <param name="system.buildConf.id" value="" spec="text description='Identifier of a build configuration where to trigger a build' display='normal' label='Build configuration ID:' validationMode='not_empty'" /> <param name="system.custom.params" value="" spec="text description='New-line delimited custom build parameters in the form: &lt;name&gt;=&lt;value&gt;' display='normal' label='Custom parameters:' regexp='(|[^=\s|]+=|[^=\s|]+\s*)*' validationMessage='Expected new-line delimited &lt;name&gt;=&lt;value&gt; pairs' validationMode='regex' allowEmpty='true'" /> <param name="system.username" value="" spec="text description='Username of a user who triggers build' display='normal' label='Username:' validationMode='not_empty'" /> <param name="system.password" value="" spec="password description='Password of a user who triggers build' display='normal' label='Password:'" /> </parameters> <build-runners> <runner name="" type="Ant"> <parameters> <param name="build-file"><![CDATA[<project name="Custom build"> <taskdef name="http" classname="org.missinglink.ant.task.http.HttpClientTask"/> <property name="reqParams.file" location="${teamcity.build.tempDir}/rawParams.txt"/> <target name="prepare-params"> <echo file="${reqParams.file}" message="${custom.params}"/> <replaceregexp file="${reqParams.file}" match="([^=]+)=([^=]+)" replace="name=\1&amp;value=\2" byline="true" /> <replaceregexp file="${reqParams.file}" match="[\r\n]+" replace="&amp;" flags="gm" /> <echo file="${reqParams.file}" append="true">&amp;add2Queue=${buildConf.id}</echo> </target> <target name="add2Queue" depends="prepare-params"> <http url="%teamcity.serverUrl%/httpAuth/action.html" method="POST" expected="200" printrequest="true"> <credentials username="${username}" password="${password}"/> <entity file="${reqParams.file}" binary="false"/> </http> </target> </project>]]></param> <param name="build-file-path" value="build.xml" /> <param name="target" value="add2Queue" /> <param name="runnerArgs" value="-lib %teamcity.tool.ant-net-tasks%" /> <param name="teamcity.coverage.emma.include.source" value="true" /> <param name="teamcity.coverage.emma.instr.parameters" value="-ix -*Test*" /> <param name="teamcity.coverage.idea.includePatterns" value="*" /> <param name="teamcity.step.mode" value="default" /> <param name="use-custom-build-file" value="true" /> </parameters> </runner> </build-runners> <requirements /> </settings> </meta-runner>