Cloud Build one of the services available on Google Cloud Platform. Evaluation happened in January 2021 and I believe that is still improving. This post is supposed to be part of the bigger series with a unified structure.
GCP Cloud Build main features:
- Even though Cloud Build labels itself as CI/CD tool it lacks the CD features (e.g. deployment strategies, manual approval stages etc.) – nobody prevents you from developing those
- Run in GCP or has some support for local execution as well
- Build using wiring Docker containers together. Executed on single VM, you can upscale VM to high cpu machines up to 32cpu.
Cloud Build Continous Integration features:
- Definition of build lives in codebase together with code, can be configured with json or yaml
- Build can be run locally
- Support for parallel build steps
- Ordering of build steps
- IDE support: VS Code, IntelliJ Idea or/and GCP Cloud Code
- Security model provided by GCP IAM with Cloud Build Roles-> hard/poor/non-existing support for permissions on per build configurations. Usually permission modelled on the GCP project level
- Can specify machine type for build
- Slack, SMTP
- Filtering build notification
- Build Triggers
- Manually run – ???Permissions per build config ???
- Repository event – with possible filters
- Pull request
- Two modes for GitHub
- Pre-defined variables
- BUILD-ID not an integer value but rather UUID like e.g. dceea33e-4e3f-41bd-b721-eed3897730a3
- No concepts of build/commits ordering supported by default
- Secrets support – Use Secret Manager or KMS
Google Cloud Build Pricing:
- 120 builds minutes/day FREE
- Pricing details page
Purely CI system with the capability to build (~ Cloud Build). No triggers for time-based related things. So either Event-based (commit, tag, …) or manual trigger. Probably could be emulated via Cloud Function to trigger to simulate Time Based Trigger. Has the ability to run locally which is nice. Scales up to 32cpu machines. Prices based on build time (clock time). Doesn’t offer Approval stages, security model based on IAM and seems that you cannot grant permission on a particular configuration/build. Doesn’t have a concept of a pipeline – but rather a set of tasks steps(stages). Definition lives in Git – so LTS branches should be buildable. To have full end-2-end deployment, you need a CD system. This system manages just “build artefact”.