Assign Build Job to specific Configuration in Matrix?
If we upgrade to the plan with 2 x concurrent build jobs, is it possible to assign a build matrix configuration to a specific build job?
In our case we would like our branches master & develop to be assigned to build job 1 and hotfix or feature branches to be assigned to build job 2. This would alleviate an issue we are having with waiting on builds as our master and develop branches kick off builds for 5 configurations. These configurations need to be executed sequentially because of how we generate assembly info and kick off Integration tests.
I am aware of the build priorities functionality and I am using them, however in a big team everyone's branches seem more important than others.
Thanks
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by Ilya Finkelshte... on 08 Jun, 2018 07:39 PM
I am still not sure if I understood the problem correctly, let me re-formulate it:
master
anddevelop
branches should run jobs for 5 configuration sequentiallyhotfix
and feature branches has lower priority than the one formaster
anddevelop
branchesIf I am correct, I would do the following:
Create separate project for
master
anddevelop
branches:master
anddevelop
with branches white listingMax jobs
to 1 (ensure sequential execution)Build priority
)Create separate project for
hotfix
and feature branche:master
anddevelop
with branches blacklistingMax jobs
to 1 (not sure if sequential execution needed here too)Build priority
)2 Posted by matt_mckinstry on 08 Jun, 2018 08:46 PM
Thanks for your quick reply Ilya. Ill try and explain a bit better what im trying to accomplish.
Our build time per configuration is roughly 15 mins. Obfuscating, signing and installers are slow.
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
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
Our current build priorities are:
Master = 1 This is release and must always win
Hotfix = 2 Customers dont wait
Feature = 3 Devs dont like waiting either
Develop = 4 PR merges and testing, dont like waiting either
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.
What we would ideally like is that with the 2 concurrent jobs plan.
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.
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
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.
3 Posted by Ilya Finkelshte... on 11 Jun, 2018 07:28 PM
I see. The way how scheduling is designed does not allow this scenario inside single account.
However you can create separate AppVeyor accounts, each with one concurrent job. In first account you can have separate projects for
Master
andDevelop
branches, whichMaster
has higher priority. In second -- separate projects forHotfix
andFeature
branches, with higher priority forHotfix
.I have to admit that it is quite annoying to switch between accounts 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.
Ilya Finkelshteyn closed this discussion on 31 Aug, 2018 07:53 PM.