Builds within a workflow aren't queued at once

queue
workflow

#1

When two pushes are sent around the same time, one would expect that all builds from the first commit would be prioritized over builds from the next. This isn’t true with workflows that have multiple jobs.

For example,

Workflow:
  - Run Test
  - Test Schema Migrations
  - Deploy

If I send two pushes around the same time that trigger Workflow 1 and Workflow 2, I’d expect the following order for builds:

  • Run Tests (Workflow 1)
  • Test Schema Migrations (Workflow 1)
  • Deploy (Workflow 1)
  • Run Tests (Workflow 2)
  • Test Schema Migrations (Workflow 2)
  • Deploy (Workflow 2)

However, the actual order ends up being:

  • Run Tests (Workflow 1)
  • Run Tests (Workflow 2)
  • Test Schema Migrations (Workflow 1)
  • Test Schema Migrations (Workflow 2)
  • Deploy (Workflow 1)
  • Deploy (Workflow 2)

This amplifies the build time for ALL workflows, and unnecessarily delays the first build.


#2

Agreed, part of me thinks that this is where the $$$ comes in for a paid plan that does parallelization so each persons build time remains the same but BOTH people get their jobs completed in the same time instead of one person.

I just disagree with the practice though, you can get final steps of a build easily delayed by 30 minutes due to other builds being pushed.


#3

Yet another pain point I’m finding with circleci too… :weary:


#4