Deployments work by uploading an archive containing your function's source code to a Google Cloud Storage bucket. You can deploy Cloud Functions from your local machine or from your GitHub or Bitbucket source repository (via Cloud Source Repositories). For details, see:
Building and Testing Locally
Cloud Functions execute in runtime environments based on open source languages and frameworks so you can build and test your functions locally using standard Node.js 6, Node.js 8, Python, and Go runtimes and development tools.
If your functions are written in Node.js, you can also use the Cloud Functions Node.js Emulator to run and debug your functions locally. This makes testing and debugging easier.