1 min readMay 13, 2020
First, no, the docker doesn’t get built every time unless it has changed. The overhead comes from:
- pulling the docker image (note that although it doesn’t get built every time, it needs to get pulled every time) where as the node container sits locally instead of a registry.
- orchestration (since it needs arbitrary resource and services). depending on what type of orchestration it uses, it might be faster or slower, but any type of orchestration comes with a cost.
This is what can be inferred without knowing the details of GitHub’s internal implementation.
The chances are, the Node runtime is not even a VM which could actually make sense.
Assuming that Node uses a VM container under the hood, the comparison falls into a base image with relatively fixed resource requirements that sits locally (Node actions) vs. a arbitrary image with unknown resource requirements that is hosted in a registry (Docker actions).