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.
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.
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.
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.
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.
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.
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.
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.
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.