Thanks for the quick reply.
I have about a dozen active private repos with applications being developed. A big project among them has over 70 jobs to tackle per commit because we are building a c++ cross platform engine and applications targeting multiple OS/chips/configs.
We often commit 2+ repos back to back since we might often make changes to the engine along with applications.
With a single job, developers were often waiting for “the big one” to finish before their projects began building. This could take a significant amount of time and developers were canceling early and sometimes modifying the script to reduce number of jobs etc to get through it faster (since we cant cancel individual jobs to get to the few we might want to test on a feature build).
I recently upgraded to the 2 job plan to try it out and was hoping to have 1 job working on each project when they go up so that developers aren’t waiting for the big one and also so developers don’t have to wait on each other.
below is the smallest yaml file we have with 2 jobs for reference. I removed the token and trimmed a few lines in the build section for obvious reasons posting publicly here, but the idea is still here.
I’ve also attached a screenshot showing 2 jobs running side by side.
I’ve also set Max_Jobs in the settings tab of the backpanel to 1 and nothing seems to work.
Would love to know what we’re doing wrong.
- arch: ArmV8
- arch: x64
# install dependencies
- sudo ./buildscripts/install_dependencies_appveyor.sh $arch
- echo "Finished install step"
# do generate and compile
- $build_script $build_flags
- echo "Finished build step"
# published based on the branch we're on.
# Note: dont publish unless its one of these branches.
- if [ "$APPVEYOR_REPO_BRANCH" = "production" ]; then
$publish_package $arch VersionOne;
- if [ "$APPVEYOR_REPO_BRANCH" = "testing" ]; then
$publish_package $arch VersionOne-Testing;
# Publish docker based on arch
- echo "Finished publishing"
- echo "Success!"
Also I noticed that your developers sometimes need smaller subset of build jobs. Would you vote for https://github.com/appveyor/ci/issues/2299? We will probably propose simpler YAML syntax for this. I wonder if this functionality -- declare some jobs subset in commit message description -- would help your devs.
I looked at the feature request link you posted. I can see how it would work for some people, but in our case it would just cause text pollution in our commit messages. I feel like this is a work around using a external source to lack of interface on the GUI. A far more useful feature for us would be the ability to cancel / restart individual jobs from the web GUI directly. Or better yet, to reprioritize the build queue via drag and drop. That would enable us to get quick feedback on whether some change is a bust or not. It happens often that if a particular job passes (somewhere in the middle of a long list of jobs), then we have high confidence in the rest of them passing.