tag:help.appveyor.com,2012-11-13:/discussions/questions/21586-assign-build-job-to-specific-configuration-in-matrixAppVeyor: Discussion 2018-08-31T19:53:35Ztag:help.appveyor.com,2012-11-13:Comment/454434112018-06-08T19:39:48Z2018-06-08T19:39:48ZAssign Build Job to specific Configuration in Matrix?<div><p>I am still not sure if I understood the problem correctly, let me re-formulate it:</p>
<ul>
<li>Build for <code>master</code> and <code>develop</code> branches should run jobs for 5 configuration <strong>sequentially</strong></li>
<li>Build for <code>hotfix</code> and feature branches has <strong>lower priority</strong> than the one for <code>master</code> and <code>develop</code> branches</li>
</ul>
<p>If I am correct, I would do the following:</p>
<ul>
<li>
<p>Create separate project for <code>master</code> and <code>develop</code> branches:</p>
<ul>
<li>allow to build <strong>only</strong> <code>master</code> and <code>develop</code> with <a href="https://www.appveyor.com/docs/branches/#white--and-blacklisting">branches white listing</a></li>
<li>Set <code>Max jobs</code> to 1 (ensure sequential execution)</li>
<li>Set <strong>higher</strong> build priority (lower number in <code>Build priority</code>)</li>
</ul>
</li>
<li>
<p>Create separate project for <code>hotfix</code> and feature branche:</p>
<ul>
<li>allow to build all <strong>except</strong> <code>master</code> and <code>develop</code> with <a href="https://www.appveyor.com/docs/branches/#white--and-blacklisting">branches blacklisting</a></li>
<li>Set <code>Max jobs</code> to 1 (not sure if sequential execution needed here too)</li>
<li>Set <strong>lower</strong> build priority (higher number in <code>Build priority</code>)</li>
</ul>
</li>
</ul></div>Ilya Finkelshteyntag:help.appveyor.com,2012-11-13:Comment/454434112018-06-08T20:46:27Z2018-06-08T20:46:27ZAssign Build Job to specific Configuration in Matrix?<div><p>Thanks for your quick reply Ilya. Ill try and explain a bit better what im trying to accomplish.</p>
<p>Our build time per configuration is roughly 15 mins. Obfuscating, signing and installers are slow.</p>
<p>In our case Master and Develop build 5 distinct configurations. Release x86 & x64, ReleaseFlavour1 x64, ReleaseFlavour2 x64, ReleaseFlavour3 x64. Flavours are recent addition. We need these to build sequentially as we Have a custom assembly patching mechanism on build job 1 that writes back to source control etc. This increments the 3rd section in the assembly version for us e.g. 1.0.123.0</p>
<p>Hotfix and Feature branches only build a single configuration Release x64. They use AppVeyor provided build number to patch assembly info e.g. 1.0.123.1536</p>
<p>Our current build priorities are:<br>
Master = 1 This is release and must always win<br>
Hotfix = 2 Customers dont wait<br>
Feature = 3 Devs dont like waiting either<br>
Develop = 4 PR merges and testing, dont like waiting either</p>
<p>Our issue is that our Develop build jobs keep getting bumped down the queue by features and hotfixes which makes Testing unhappy. Support also dont want to waiting 75 mins+ on their hotfix build if it is queued after Develop. Same with Devs on Feature branches.</p>
<p>What we would ideally like is that with the 2 concurrent jobs plan.<br>
Assign master and develop to always use concurrent job 1. Thus they can pump out config builds sequentially taking 15 mins x 5 without slowing down Support or Dev.<br>
Concurrent job 2 could be assigned to build branches Feature and Hotfix building these relatively fast build configurations when needed. Obviously this could lead us to not fully utilising our concurrent jobs, but thats ok</p>
<p>Is this something that is possible or could be supported in the future? I see this as an extra property such as build_job: 1 against a branch config in the build matrix.</p></div>matt_mckinstrytag:help.appveyor.com,2012-11-13:Comment/454434112018-06-11T19:28:42Z2018-06-11T19:28:42ZAssign Build Job to specific Configuration in Matrix?<div><p>I see. The way how scheduling is designed does not allow this scenario inside single account.</p>
<p>However you can create separate AppVeyor accounts, each with one concurrent job. In first account you can have separate projects for <code>Master</code> and <code>Develop</code> branches, which <code>Master</code> has higher priority. In second -- separate projects for<br>
<code>Hotfix</code> and <code>Feature</code> branches, with higher priority for <code>Hotfix</code>.</p>
<p>I have to admit that it is quite annoying to <a href="https://www.appveyor.com/docs/team-setup/#switching-between-accounts">switch between accounts</a> if you need to check build statuses, but we soon will make it easier (without re-login). Also you can keep different accounts opened in different browsers.</p></div>Ilya Finkelshteyn