<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Build configuration Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/build-configuration/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/build-configuration/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 27 Feb 2021 09:51:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>Build Configuration Templates in Teamcity &#124; Teamcity Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/build-configuration-templates-in-teamcity/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-configuration-templates-in-teamcity/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build configuration]]></category>
		<category><![CDATA[Build Configuration Templates]]></category>
		<category><![CDATA[Build Configuration Templates in TeamCity]]></category>
		<category><![CDATA[Build management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Teamcity]]></category>
		<category><![CDATA[Teamcity Guide]]></category>
		<category><![CDATA[Teamcity Tutorial]]></category>
		<category><![CDATA[Templates]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2015/02/24/build-configuration-templates-in-teamcity/</guid>

					<description><![CDATA[<p>Going meta with Meta-Runners in TeamCity We have seen that build runners can be very handy. Even though most build [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-configuration-templates-in-teamcity/">Build Configuration Templates in Teamcity | Teamcity Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div>
<div>
<div>
<h1><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3513 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/build-configuration-templat.png" alt="build-configuration-templates-in-teamcity" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/build-configuration-templat.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/build-configuration-templat-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></h1>
<h1>Going meta with Meta-Runners in TeamCity</h1>
</div>
</div>
</div>
<p><a name="We have"></a>We have seen that build runners can be very handy. Even though most build runners can be replaced with an equivalent command using the command-line runner, build runners come with the convenience of easily setting up build steps, along with the necessary agent requirements and parameters.</p>
<p>Meta-Runners<a id="id772"></a><a name="to create"></a> provide a straightforward way to create custom build runners. Meta-Runners can be thought of as a way to avoid duplications in build steps across build configurations.</p>
<div title="Note">
<div>
<h3><a id="note93"></a>Note</h3>
<p><a name="create and"></a>While templates can be used to create and maintain build configurations that are very similar, Meta-Runners can be used across build configurations that perform the same build steps. Moreover, a build configuration can only be based on one template, but it can make use of multiple Meta-Runners.</p>
</div>
</div>
<p>In <a title="Chapter 3. Getting Your CI Up and Running" href="http://techbus.safaribooksonline.com/9781849699518/ch03_html" data-ajax="1">Chapter 3</a>, <em>Getting Your CI Up and Running</em>, we created the deploy-to-test<a name="application to"></a> build configuration that deploys the Django application to Heroku. Using this build configuration as an example, we can see how we can extract a Meta-Runner Deploy To Heroku<a name="that wants"></a> that can be used by any build configuration that wants to deploy to Heroku.</p>
<p>Recall that the deploy-to-test build configuration<a id="id773"></a> had a simple command-line runner that executed the following commands:</p>
<div>
<pre><strong>git remote add heroku git@heroku.com:django-ci-example.git</strong>  <strong>git push heroku master</strong></pre>
</div>
<p>To create a generic Meta-Runner<a id="id774"></a><a name="to push"></a> out of this, we need to provide a way to push to any remote, rather than just git@heroku.com:django-ci-example.git.</p>
<div title="Note">
<div>
<h3><a id="note94"></a>Note</h3>
<p>Deploying to Heroku using remotes needs the ssh<a name="example used"></a> keys to be set up on the agent. The example used here just illustrates Meta-Runners and may not be ideal for production use.</p>
<p><a name="in"></a>As mentioned in <a title="Chapter 6. TeamCity for Ruby Projects" href="http://techbus.safaribooksonline.com/9781849699518/ch06_html" data-ajax="1">Chapter 6</a>, <em><a name="for Ruby"></a>TeamCity for Ruby Projects</em>, we can use<a id="id775"></a> a gem such <a id="id776"></a>as heroku-headless (<a href="https://github.com/moredip/heroku-headless" target="_new" rel="noopener">https://github.com/moredip/heroku-headless</a>).</p>
</div>
</div>
<p><a name="extracting the"></a>As expected, we will do this by extracting the remote out into a build parameter. The command-line runner will have the following as the <strong><a name="Custom Script"></a>Custom Script</strong> to be run:</p>
<div>
<pre><strong>git remote add heroku %heroku.remote%</strong>  <strong>git push heroku master</strong></pre>
</div>
<p><a name="value for"></a>We will provide the value for the %heroku.remote% parameter in the <strong>Build Parameters</strong> section of the build configuration.</p>
<p><a name="a Meta"></a>Now we are ready to create a Meta-Runner from this build configuration. This can be done by clicking on the <strong>Extract Meta-Runner</strong><a name="the build"></a> button in the right-hand side bar of the build configuration settings page. This brings up the <strong>Extract Meta-Runner</strong> dialog, which is shown in the following screenshot:</p>
<div><img decoding="async" class=" size-full wp-image-401" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity1.jpg" alt="Going meta with Meta-Runners" width="683" height="405" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity1.jpg 683w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity1-300x178.jpg 300w" sizes="(max-width: 683px) 100vw, 683px" /></div>
<p>In the dialog, we<a id="id777"></a><a name="name that"></a> give a name to the Meta-Runner. This is the name that will appear in the <strong>Runner Type</strong><a name="build configuration"></a> field when configuring a build step for a build configuration.</p>
<p>Click on <strong>Extract</strong><a name="see it"></a> to create the Meta-Runner. Once the Meta-Runner is created, we can see it listed in the <strong>Meta-Runners</strong><a name="the project"></a> tab on the project administration page. We can also edit the Meta-Runner to fine-tune it as desired.</p>
<div title="Note">
<div>
<h3><a id="tip77"></a>Tip</h3>
<p><a name="is essentially"></a>A Meta-Runner is essentially an XML configuration (much like most TeamCity configurations) that can be edited directly from the web interface.</p>
</div>
</div>
<p><a name="page of"></a>The following screenshot shows the edit page of the Deploy To Heroku<a name="that we"></a> Meta-Runner that we just created:</p>
<div><img decoding="async" class=" size-full wp-image-402" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity2.jpg" alt="Going meta with Meta-Runners" width="806" height="564" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity2.jpg 806w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity2-300x210.jpg 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity2-768x537.jpg 768w" sizes="(max-width: 806px) 100vw, 806px" /></div>
<p>The <a id="id778"></a><a name="and steps"></a>Meta-Runner extracts all the parameters and steps defined in the build configuration. We can edit the Meta-Runner to have only the necessary parameters and steps.</p>
<div title="Using Meta-Runners">
<div>
<div>
<div>
<h2><a id="ch10lvl2sec93"></a>Using Meta-Runners</h2>
</div>
</div>
</div>
<p>We can <a id="id779"></a><a name="pretty much"></a>now use the Meta-Runner that we created pretty much like a normal build runner. We will remove the existing build step in the deploy-to-test<a name="and add"></a> build configuration (from which we extracted the Meta-Runner) and add a Deploy To Heroku Meta-Runner-based build step.</p>
<div title="Note">
<div>
<h3><a id="tip78"></a>Tip</h3>
<p><a name="want to"></a>We can also disable build steps if we don&#8217;t want to remove them while experimenting.</p>
</div>
</div>
<p>In the <strong>New Build Step</strong> page, for the <strong>Runner type</strong> field, the newly created <strong>Deploy To Heroku</strong> Meta-Runner is available, as shown in the following screenshot:</p>
<div><img loading="lazy" decoding="async" class=" size-full wp-image-403" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity3.jpg" alt="Using Meta-Runners" width="480" height="381" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity3.jpg 480w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity3-300x238.jpg 300w" sizes="auto, (max-width: 480px) 100vw, 480px" /></div>
<p>Once we <a id="id780"></a>choose the Deploy To Heroku Meta-Runner, we can see that the heroku.remote<a name="Since we"></a> parameter is one of the fields to be configured. Since we created the Meta-Runner with the heroku.remote parameter with the value git@heroku.com:django-ci-example.git, that remote is available by default. The Deploy To Heroku runner configuration page is shown in the following screenshot:</p>
<div><img loading="lazy" decoding="async" class=" size-full wp-image-404" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity4.jpg" alt="Using Meta-Runners" width="692" height="342" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity4.jpg 692w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/Going-meta-with-Meta-Runners-in-teamcity4-300x148.jpg 300w" sizes="auto, (max-width: 692px) 100vw, 692px" /></div>
<div title="Note">
<div>
<h3><a id="tip79"></a>Tip</h3>
<p><a name="parameters in"></a>It is possible to remove the value for parameters in the Meta-Runner XML so that no default values are present for the fields.</p>
</div>
</div>
<p>We can<a id="id781"></a> click on <strong>Save</strong><a name="the build"></a> to add the build step. The new build step, based on the Deploy To Heroku<a name="function in"></a> Meta-Runner, will function in the same way as the previous build step based on the command-line runner.</p>
<div title="Note">
<div>
<h3><a id="note95"></a>Note</h3>
<p><a name="apparent when"></a>Of course, the value of Meta-Runners becomes more apparent when we create them out of multiple build steps. The same set of steps that may be repeated across multiple configurations can be extracted into Meta-Runners.</p>
<p><span style="font-weight: 600; color: #555555; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; line-height: 28px;">Reference Book</span><span style="color: #555555; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; line-height: 28px;"> &#8211; Learning Continuous Integration with TeamCity by Learning Continuous Integration with TeamCity</span></p>
</div>
</div>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-configuration-templates-in-teamcity/">Build Configuration Templates in Teamcity | Teamcity Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-configuration-templates-in-teamcity/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Going meta with Meta-Runners in TeamCity</title>
		<link>https://www.scmgalaxy.com/tutorials/going-meta-with-meta-runners-in-teamcity/</link>
					<comments>https://www.scmgalaxy.com/tutorials/going-meta-with-meta-runners-in-teamcity/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[TeamCity]]></category>
		<category><![CDATA[Build configuration]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[Meta-Runners]]></category>
		<category><![CDATA[Meta-Runners in TeamCity]]></category>
		<category><![CDATA[Teamcity]]></category>
		<category><![CDATA[Working with Meta-Runner]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2015/02/24/going-meta-with-meta-runners-in-teamcity/</guid>

					<description><![CDATA[<p>Going meta with Meta-Runners in TeamCity Official Reference &#8211; https://confluence.jetbrains.com/display/TCD9/Working+with+Meta-Runner We have seen that build runners can be very handy. Even [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/going-meta-with-meta-runners-in-teamcity/">Going meta with Meta-Runners in TeamCity</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div>
<div>
<div>
<h1><img loading="lazy" decoding="async" class="aligncenter wp-image-3508 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/teamcity-meta-with-meta-run-1.png" alt="teamcity-meta-with-meta-runners" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/teamcity-meta-with-meta-run-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/02/teamcity-meta-with-meta-run-1-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Going meta with Meta-Runners in TeamCity</h1>
<p><strong>Official Reference &#8211; </strong><a href="https://confluence.jetbrains.com/display/TCD9/Working+with+Meta-Runner">https://confluence.jetbrains.com/display/TCD9/Working+with+Meta-Runner</a></p>
</div>
</div>
</div>
<p><a name="We have"></a>We have seen that build runners can be very handy. Even though most build runners can be replaced with an equivalent command using the command-line runner, build runners come with the convenience of easily setting up build steps, along with the necessary agent requirements and parameters.</p>
<p>Meta-Runners<a id="id772"></a><a name="to create"></a> provide a straightforward way to create custom build runners. Meta-Runners can be thought of as a way to avoid duplications in build steps across build configurations.</p>
<div title="Note">
<div>
<h3><a id="note93"></a>Note</h3>
<p><a name="create and"></a>While templates can be used to create and maintain build configurations that are very similar, Meta-Runners can be used across build configurations that perform the same build steps. Moreover, a build configuration can only be based on one template, but it can make use of multiple Meta-Runners.</p>
</div>
</div>
<p>In <a title="Chapter 3. Getting Your CI Up and Running" href="http://techbus.safaribooksonline.com/9781849699518/ch03_html" data-ajax="1">Chapter 3</a>, <em>Getting Your CI Up and Running</em>, we created the deploy-to-test<a name="application to"></a> build configuration that deploys the Django application to Heroku. Using this build configuration as an example, we can see how we can extract a Meta-Runner Deploy To Heroku<a name="that wants"></a> that can be used by any build configuration that wants to deploy to Heroku.</p>
<p>Recall that the deploy-to-test build configuration<a id="id773"></a> had a simple command-line runner that executed the following commands:</p>
<div>
<pre><strong>git remote add heroku git@heroku.com:django-ci-example.git</strong>  <strong>git push heroku master</strong></pre>
</div>
<p>To create a generic Meta-Runner<a id="id774"></a><a name="to push"></a> out of this, we need to provide a way to push to any remote, rather than just git@heroku.com:django-ci-example.git.</p>
<div title="Note">
<div>
<h3><a id="note94"></a>Note</h3>
<p>Deploying to Heroku using remotes needs the ssh<a name="example used"></a> keys to be set up on the agent. The example used here just illustrates Meta-Runners and may not be ideal for production use.</p>
<p><a name="in"></a>As mentioned in <a title="Chapter 6. TeamCity for Ruby Projects" href="http://techbus.safaribooksonline.com/9781849699518/ch06_html" data-ajax="1">Chapter 6</a>, <em><a name="for Ruby"></a>TeamCity for Ruby Projects</em>, we can use<a id="id775"></a> a gem such <a id="id776"></a>as heroku-headless (<a href="https://github.com/moredip/heroku-headless" target="_new" rel="noopener">https://github.com/moredip/heroku-headless</a>).</p>
</div>
</div>
<p><a name="extracting the"></a>As expected, we will do this by extracting the remote out into a build parameter. The command-line runner will have the following as the <strong><a name="Custom Script"></a>Custom Script</strong> to be run:</p>
<div>
<pre><strong>git remote add heroku %heroku.remote%</strong>  <strong>git push heroku master</strong></pre>
</div>
<p><a name="value for"></a>We will provide the value for the %heroku.remote% parameter in the <strong>Build Parameters</strong> section of the build configuration.</p>
<p><a name="a Meta"></a>Now we are ready to create a Meta-Runner from this build configuration. This can be done by clicking on the <strong>Extract Meta-Runner</strong><a name="the build"></a> button in the right-hand side bar of the build configuration settings page. This brings up the <strong>Extract Meta-Runner</strong> dialog, which is shown in the following screenshot:</p>
<div><img decoding="async" src="http://techbus.safaribooksonline.com/getfile?item=ZWc1Ni9zOGFkLzE4Lzltc2ljdHAxOThzOTk0cjdhaWMwajFnb3BlcjgxLzlwc2F0L2c4Xy4wX3RzNWg-" alt="Going meta with Meta-Runners" /></div>
<p>In the dialog, we<a id="id777"></a><a name="name that"></a> give a name to the Meta-Runner. This is the name that will appear in the <strong>Runner Type</strong><a name="build configuration"></a> field when configuring a build step for a build configuration.</p>
<p>Click on <strong>Extract</strong><a name="see it"></a> to create the Meta-Runner. Once the Meta-Runner is created, we can see it listed in the <strong>Meta-Runners</strong><a name="the project"></a> tab on the project administration page. We can also edit the Meta-Runner to fine-tune it as desired.</p>
<div title="Note">
<div>
<h3><a id="tip77"></a>Tip</h3>
<p><a name="is essentially"></a>A Meta-Runner is essentially an XML configuration (much like most TeamCity configurations) that can be edited directly from the web interface.</p>
</div>
</div>
<p><a name="page of"></a>The following screenshot shows the edit page of the Deploy To Heroku<a name="that we"></a> Meta-Runner that we just created:</p>
<div><img decoding="async" src="http://techbus.safaribooksonline.com/getfile?item=ZWc1Ni9zOGFkLzE4Lzltc2ljdHAxOThzOTk0cjdhaWMwajFnb3BlcjgxLzlwc2F0L2c5Xy4wX3RzNWg-" alt="Going meta with Meta-Runners" /></div>
<p>The <a id="id778"></a><a name="and steps"></a>Meta-Runner extracts all the parameters and steps defined in the build configuration. We can edit the Meta-Runner to have only the necessary parameters and steps.</p>
<div title="Using Meta-Runners">
<div>
<div>
<div>
<h2><a id="ch10lvl2sec93"></a>Using Meta-Runners</h2>
</div>
</div>
</div>
<p>We can <a id="id779"></a><a name="pretty much"></a>now use the Meta-Runner that we created pretty much like a normal build runner. We will remove the existing build step in the deploy-to-test<a name="and add"></a> build configuration (from which we extracted the Meta-Runner) and add a Deploy To Heroku Meta-Runner-based build step.</p>
<div title="Note">
<div>
<h3><a id="tip78"></a>Tip</h3>
<p><a name="want to"></a>We can also disable build steps if we don&#8217;t want to remove them while experimenting.</p>
</div>
</div>
<p>In the <strong>New Build Step</strong> page, for the <strong>Runner type</strong> field, the newly created <strong>Deploy To Heroku</strong> Meta-Runner is available, as shown in the following screenshot:</p>
<div><img decoding="async" src="http://techbus.safaribooksonline.com/getfile?item=ZWc1Ni9zOGFkLzE4Lzltc2ljdHAxOThzOTk0cjdhaWMxajFnb3BlcjgxLzlwc2F0L2cwXy4wX3RzNWg-" alt="Using Meta-Runners" /></div>
<p>Once we <a id="id780"></a>choose the Deploy To Heroku Meta-Runner, we can see that the heroku.remote<a name="Since we"></a> parameter is one of the fields to be configured. Since we created the Meta-Runner with the heroku.remote parameter with the value git@heroku.com:django-ci-example.git, that remote is available by default. The Deploy To Heroku runner configuration page is shown in the following screenshot:</p>
<div><img decoding="async" src="http://techbus.safaribooksonline.com/getfile?item=ZWc1Ni9zOGFkLzE4Lzltc2ljdHAxOThzOTk0cjdhaWMxajFnb3BlcjgxLzlwc2F0L2cxXy4wX3RzNWg-" alt="Using Meta-Runners" /></div>
<div title="Note">
<div>
<h3><a id="tip79"></a>Tip</h3>
<p><a name="parameters in"></a>It is possible to remove the value for parameters in the Meta-Runner XML so that no default values are present for the fields.</p>
</div>
</div>
<p>We can<a id="id781"></a> click on <strong>Save</strong><a name="the build"></a> to add the build step. The new build step, based on the Deploy To Heroku<a name="function in"></a> Meta-Runner, will function in the same way as the previous build step based on the command-line runner.</p>
<div title="Note">
<div>
<h3><a id="note95"></a>Note</h3>
<p><a name="apparent when"></a>Of course, the value of Meta-Runners becomes more apparent when we create them out of multiple build steps. The same set of steps that may be repeated across multiple configurations can be extracted i</p>
</div>
</div>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/going-meta-with-meta-runners-in-teamcity/">Going meta with Meta-Runners in TeamCity</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/going-meta-with-meta-runners-in-teamcity/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
