Separate deployment steps from build steps

We use circle to test our non-master branches and to deploy our master branch. We use github’s protected branches to force branches to be up to date with master before merging.

What we want to be able to do is not run the tests on the master branch (which we can do using the environment variables), AND only ever use 1 container for deploying. Our deploys have to go in order, and can take between 2 and 20 minutes.

Currently, if we have parallelism turned on to say 2, 2 containers will be used to “build” our master branch, but we only need/want 1, and want the other one available for other builds.

Our request is specific to our workflow. But it feels like there’s a more general idea here that “builds” are different from “deployments”, and we should be able to allocate resources differently for those different steps.

Are there any workarounds for this?

Did you ever figure out how to do this?