Bird
Raised Fist0
GCPcloud~5 mins

Cloud Build for CI/CD in GCP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Cloud Build in Google Cloud Platform?
Cloud Build is a service in Google Cloud that automates the process of building, testing, and deploying code. It helps teams deliver software faster by automating these steps in a pipeline.
Click to reveal answer
beginner
What file does Cloud Build use to define build steps?
Cloud Build uses a file named cloudbuild.yaml or cloudbuild.json to define the sequence of build steps and actions to perform.
Click to reveal answer
intermediate
How does Cloud Build integrate with source code repositories?
Cloud Build connects with repositories like GitHub or Cloud Source Repositories to automatically trigger builds when code changes are pushed, enabling continuous integration.
Click to reveal answer
intermediate
What is a build trigger in Cloud Build?
A build trigger is a configuration that tells Cloud Build when to start a build automatically, such as on a code push or pull request.
Click to reveal answer
beginner
Name two common build steps you might include in a Cloud Build pipeline.
Common build steps include compiling code, running tests, building Docker images, and deploying to environments.
Click to reveal answer
What file format can you use to define Cloud Build steps?
Acloudbuild.yaml
BDockerfile
Cpackage.json
Dbuild.gradle
Which event can trigger a Cloud Build automatically?
ADatabase backup
BManual server restart
CUser login
DCode push to repository
What is the main purpose of Cloud Build in CI/CD?
AStore source code securely
BMonitor server health
CAutomate building, testing, and deploying code
DManage user permissions
Which Google Cloud service is used to store container images built by Cloud Build?
AContainer Registry
BCloud Storage
CBigQuery
DCloud SQL
Can Cloud Build run tests as part of the build process?
ANo, Cloud Build only builds code
BYes, tests can be run as build steps
COnly if tests are written in Python
DOnly after deployment
Explain how Cloud Build helps automate the software delivery process.
Think about how Cloud Build connects code changes to automatic actions.
You got /4 concepts.
    Describe the role of a build trigger in Cloud Build and give an example.
    Triggers tell Cloud Build when to start working.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of Google Cloud Build in a CI/CD pipeline?
      easy
      A. To store large amounts of data
      B. To automate building, testing, and deploying code
      C. To monitor network traffic
      D. To manage user permissions

      Solution

      1. Step 1: Understand Cloud Build's role

        Cloud Build automates the process of building, testing, and deploying code, which is essential in CI/CD pipelines.
      2. Step 2: Eliminate unrelated options

        Storing data, monitoring network traffic, and managing permissions are not primary functions of Cloud Build.
      3. Final Answer:

        To automate building, testing, and deploying code -> Option B
      4. Quick Check:

        Cloud Build = Automate build/test/deploy [OK]
      Hint: Remember: Cloud Build automates code delivery steps [OK]
      Common Mistakes:
      • Confusing Cloud Build with storage services
      • Thinking Cloud Build manages network or permissions
      • Assuming Cloud Build only builds code without testing or deploying
      2. Which of the following is the correct way to specify a build step in a Cloud Build YAML file?
      easy
      A. actions: - image: 'docker' run: ['build', '-t', 'image', '.']
      B. build_steps: - container: 'gcr.io/cloud-builders/docker' commands: ['build', '-t', 'image', '.']
      C. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.']
      D. commands: - use: 'docker' execute: ['build', '-t', 'image', '.']

      Solution

      1. Step 1: Review Cloud Build YAML syntax

        The correct key for build steps is 'steps', and each step uses 'name' for the builder image and 'args' for commands.
      2. Step 2: Compare options to syntax

        steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] matches the correct syntax. Other options use incorrect keys like 'build_steps', 'actions', or 'commands'.
      3. Final Answer:

        steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] -> Option C
      4. Quick Check:

        Use 'steps' with 'name' and 'args' in Cloud Build YAML [OK]
      Hint: Look for 'steps' with 'name' and 'args' keys in YAML [OK]
      Common Mistakes:
      • Using wrong keys like 'build_steps' or 'actions'
      • Confusing 'args' with 'commands'
      • Omitting the builder image name
      3. Given this Cloud Build YAML snippet, what will be the output of the build step?
      steps:
      - name: 'ubuntu'
        args: ['echo', 'Hello, Cloud Build!']
      medium
      A. Build fails due to missing Docker image
      B. Syntax error in YAML file
      C. No output is produced
      D. Hello, Cloud Build!

      Solution

      1. Step 1: Analyze the build step

        The step uses the 'ubuntu' image and runs the command 'echo Hello, Cloud Build!'. This command prints the message to the output.
      2. Step 2: Determine expected output

        Since 'echo' prints text, the output will be 'Hello, Cloud Build!'. There is no syntax error or missing image because 'ubuntu' is a valid public image.
      3. Final Answer:

        Hello, Cloud Build! -> Option D
      4. Quick Check:

        Echo command prints text output [OK]
      Hint: Echo commands print their arguments as output [OK]
      Common Mistakes:
      • Assuming build fails due to image name
      • Thinking no output is produced by echo
      • Confusing YAML syntax errors with valid syntax
      4. You wrote this Cloud Build YAML but the build fails immediately. What is the error?
      steps:
      - name: 'gcr.io/cloud-builders/docker'
        args: ['build', '-t', 'gcr.io/my-project/my-image']
      medium
      A. Missing the build context (dot) at the end of args
      B. Incorrect builder image name
      C. YAML indentation error
      D. args should be a string, not a list

      Solution

      1. Step 1: Check Docker build command syntax

        The Docker build command requires a build context, usually '.' at the end, to specify where to find the Dockerfile.
      2. Step 2: Identify missing argument

        The args list misses the '.' context argument, causing the build to fail immediately.
      3. Final Answer:

        Missing the build context (dot) at the end of args -> Option A
      4. Quick Check:

        Docker build needs context path '.' [OK]
      Hint: Always end docker build args with '.' for context [OK]
      Common Mistakes:
      • Assuming image name is wrong
      • Thinking YAML indentation is the issue
      • Using string instead of list for args
      5. You want to create a Cloud Build pipeline that builds a Docker image, runs tests, and then deploys only if tests pass. Which YAML structure correctly represents this workflow?
      hard
      A. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy'] waitFor: ['-']
      B. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy']
      C. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy']
      D. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy'] waitFor: ['-']

      Solution

      1. Step 1: Understand step dependencies in Cloud Build

        Cloud Build starts steps in parallel by default. Use 'waitFor: ["-"]' to make a step wait for all previous steps to succeed.
      2. Step 2: Analyze options for correct workflow

        steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy'] waitFor: ['-'] in steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy'] waitFor: ['-'] ensures tests wait for build, and deploy waits for both.
      3. Final Answer:

        steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/my-image', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['run', 'my-image', 'test'] waitFor: ['-'] - name: 'gcr.io/cloud-builders/gcloud' args: ['app', 'deploy'] waitFor: ['-'] -> Option A
      4. Quick Check:

        waitFor ['-'] on test and deploy enforces build -> test -> deploy [OK]
      Hint: Use waitFor: ['-'] on test and deploy steps for sequential workflow [OK]
      Common Mistakes:
      • Adding 'waitFor' incorrectly on all steps
      • Omitting 'waitFor' causing deploy to run too early
      • Misplacing 'waitFor' inside wrong steps
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard