separated npm install logic from checkout exec