campaigns: fall back to bind workspaces when running steps with mixed users
Created by: LawnGnome
This fixes sourcegraph/sourcegraph#17172. I'm inclined to get this in before I try releasing 3.23.2 again.
The only real drawback of this PR (besides the extra lines of code) is that src
will now always ensure the sourcegraph/src-campaign-volume-workspace
container is available, since we don't know at the point of downloading Docker images which workspace we'll use. (To figure that out, we'd need the images, and then the snake eats itself.) Since Docker is good at caching, I'm not too concerned: this is only one extra docker image inspect
call in any case except for the very first cold run with a new version. (Also, we can definitely optimise those more later.)
Speaking of versioning, there's one other change to make this work as well: when I implemented #412, I missed that newer versions of the workspace image wouldn't be pulled when new src
versions were released. I've fixed this now (otherwise all my careful Docker image tagging would be for naught!), but note there's a touch of extra complexity in here around moving the buildTag
to another package so we can access it. I think it's fine, but it's worth an extra set of eyes.