separate build and push