Skip to content

Instantly share code, notes, and snippets.

@pmanlukas
Last active January 23, 2021 06:48
Show Gist options
  • Save pmanlukas/aa96679b8968d12c679bb8a14a3e5df5 to your computer and use it in GitHub Desktop.
Save pmanlukas/aa96679b8968d12c679bb8a14a3e5df5 to your computer and use it in GitHub Desktop.

FAQ on Google Cloud Platform and GitHub Enterprise

This FAQ covers typical questions regarding Google Cloud Platform (GCP) and GitHub. These FAQs are not complete and will be updated from time to time.

General Questions

Can we use GCP with GitHub?

Yes, you will be able to use GitHub if GCP is the or one of the clouds of your choice. Google is a partner of GitHub and develops and maintains many projects on GitHub.com like Tensorflow. If you want to deploy your code to GCP, then you can either use the GitHub App for Google Cloud Build, the GitHub deployments API and the GCP API or GitHub Actions and the GCP Actions created by Google.

The GCP documentation also has many samples, that use GitHub and show e.g. how to setup GitOps with GCP and GitHub. Developers and some GitHub Customers use GCP with GitHub. Therefore, when using GCP and starting with GitHub or vice versa you'll find the integrations and resources needed to do so successfully.

Is there a prefered cloud to use with GitHub?

No, GitHub is neutral when talking about what cloud should xyz use for their projects. We support all major cloud vendors like AWS, Azure and GCP but also many other 3rd party tools and platforms. Our marketplace as well as our APIs allow developers and partners tight integrations with GitHub. Our CI/CD and automation platform GitHub Actions also integrates with many different cloud vendors and our templates also offer support for AWS, Azure and GCP out of the box.

Do we need to move to Azure?

No, although Microsoft acquired GitHub in 2018, we remain independent as a platform. While Microsoft did and does invest in GitHub as a platform, there is no pressure or policy on GitHub to favor Azure over other cloud vendors. Our CEO Nat also promised this in his first blog post as a CEO of GitHub after the acquisition:

  • GitHub will operate independently as a community, platform, and business. This means that GitHub will retain its developer-first values, distinctive spirit, and open extensibility. We will always support developers in their choice of any language, license, tool, platform, or cloud.

  • GitHub will retain its product philosophy. We love GitHub because of the deep care and thoughtfulness that goes into every facet of the developer’s experience. I understand and respect this, and know that we will continue to build tasteful, snappy, polished tools that developers love.

On DevOps

Can we integrate Google Cloud Build with GitHub?

Yes, there is already a well documented integration. You can use the GitHub App integration on the GitHub marketplace to setup Google Cloud Build with GitHub.

Can we deploy from GitHub to GCP?

Yes, either with Google Cloud build and the GitHub App integration, or by using the GitHub deployment API or with GitHub Actions. There are many blog articles on this as well as official documentation by Google. We also have a blog post on the Cloud build integration.

Does Actions support GCP?

Yes, there are already actions created by the GCP team as well as actions created by other developers available on GitHub. The quickstart templates for GitHub Actions also offer a template for an Action workflow, that integrates with GCP. When you use GitHub Actions hosted agents to execute your workflows, then you can either use the pre installed Google Cloud SDK or install any custom tools to interact with GCP.

How does Actions compare to Google Cloud Build?

Google Cloud Build is a CI/CD tool that is part of the GCP offering to build, test and deploy code within the Google Cloud. Cloud Build allows to create pipelines based on a Docker File or a Yaml file, integrates tightly into the GCP ecosystem and can also be extended with custom build steps. While it shares many similarities with GitHub Actions, there are also differences:

  • GitHub Actions can not just be used for CI/CD workflows. Since GitHub Actions are part of GitHub, they can react to nearly any event on GitHub and thus be used to automate GitHub itself and many other workflows, that are part of the SDLC. This level of automation is not possible with Google Cloud Build.
  • GitHub Actions can also be extended with custom Actions (either based on a Docker Image or Javascript code). Other than Google Cloud Build, these custom Actions can be either part of the repository itself or lay in another public repository. This allows a fast and simple integration and helped to create a big ecosystem of more than 2000 3rd party actions. You can also create your own Action from scratch or iterate on an exisiting Action. Google Cloud Build does not offer a comparable ecosystem.
  • GitHub Actions can also be executed on your own hardware or run on hosted agents for all major OS (Mac, Windows and Linux). Google Cloud Build does not offer the same flexibility and choice when it comes to agents.

On Google Cloud Source Repositories

How is GitHub different to Cloud Source Repositories?

GitHub is the biggest platform for developers and offers support to manage and work on source code for private projects, open soruce projects or projects within enterprises. Cloud Source Repositories (CSR) are a light weigth service from Google to host source code or mirror existing repositories on GitHub. CSR can integrate with other services on GCP and others hosting for private git repositories.

While both, GitHub and CSR, can host private git repositories, GitHub offers much more features apart from hosting a git repository. This also means, that CSR is not a replacement for your repositories on GitHub but rather a easy way to mirror and sync your repository between your GCP project and GitHub. GitHub also offers a many features ontop of source code hosting, that CSR does not offer:

  • GitHub is the largest platform for developers with over 40 million developers on GitHub.com and many more on private GitHub instances in many companies. It is also hosting ~80% of the worlds open source projects (e.g. Kubernetes, Apache Foundation, Jenkins) and allows developers and organisations to create, maintain or contribute to the worldwide OSS ecosystem.
  • GitHub offers features like the famous Pull Request, which allows for simple yet powerfull collaboration on code reviews and changes. It also offers many other features like GitHub Actions to automate your SDLC or the dependency graph to secure and monitor your projects dependencies.
  • GitHub offers a large ecosystem of partners, integrations and resources, that allow simple setup and integration with your existing SDLC enviroment. The GitHub marketplace with its App model as well as the GitHub API allow for simple integration with GitHub and offer developers simple ways to interact with the platform.

Therefore many developers and companies use GitHub to store and work on the source code of their projects and integrate GitHub with their toolchain and cloud provider.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment