different 'before_script'-s for different runners
The before_script job could be more useful if you could have several of them that you could assign to runners with different tags, or to specific branches.
I think, a more general solution would be to use the regular job syntax with either a special stage name or 'when' value, similarly to 'when: always'.
Edited by Jason Yavorsky