Тут главная идея в том, чтобы получать как можно большое обратной связи от каждого stage
Вот, скажем, сломался у нас build - мы должны узнать об этом как можно раньше и со всеми подробностями: где, как и почему сломался.
Аналогично lint - где, как и почему у нас нарушается code guideline.
Аналогично test - какой тест и как именно рухнул.
Если build docker даст вам такую же точную диагностику где что и как сломалось - собственно почему бы и да? Но лично я бы разделил на отдельные шаги, по принципу unix way. Так проще всем этим управлять будет.