Quickstart: Automate

This page explains how to use Cloud Build to automate builds.

Cloud Build uses build triggers to enable CI/CD automations. You can configure triggers to listen for incoming events, such as when a new commit is pushed to a repository or when a pull request is initiated, and then automatically invoke a build when new events come in.

You will create a trigger and configure that trigger to invoke a build anytime you push a change to a GitHub repository.

Before you begin

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud Console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Cloud project. Learn how to confirm that billing is enabled for your project.

  4. Enable the Cloud Build API.

    Enable the API

  5. Install and initialize the Cloud SDK.
  6. If you don't have one already, create an account on GitHub.
  7. If you have two-factor authentication set up on GitHub, create a personal access token to use in place of a GitHub password with the command line.

Prepare source files

You'll need some sample source code to build. In this section, you'll clone an existing source repository containing a Hello World example in Go to your own GitHub user account.

  1. Go to the Cloud Build cloud-build-samples repository.

  2. Fork the cloud-build-samples repository to your own GitHub account.

    1. Click on the Fork icon on the top-right corner of the page.
    2. Click on the GitHub user account you want to fork the repository to.

      You will automatically be redirected to the page with your forked version of the cloud-build-samples repository.

  3. Clone the repository to your local machine by running the following command in your terminal, where GITHUB_USERNAME is the username for your GitHub account:

     git clone https://github.com/GITHUB_USERNAME/cloud-build-samples.git
    
  4. Navigate to the quickstart-automate directory:

     cd cloud-build-samples/quickstart-automate
    

    You will see the following files containing source code for your Hello World example:

    • main.go: a sample Go application that prints Hello, world!

       package main
      
       import (
           "fmt"
       )
      
       func main() {
           fmt.Println("Hello, world!")
       }
      
    • cloudbuild.yaml: the build configuration file used by Cloud Build to perform actions specified as build steps. The build step used in this file instructs Cloud Build to use the golang image from Docker Hub to build and run the main.go file.

       steps:
       - name: golang
         args: ['go', 'run', 'quickstart-automate/main.go']
      

Connect your repository

To build source code on GitHub using triggers, you must first connect Cloud Build to your GitHub repository. In this section, you'll connect your cloud-build-samples repository to Cloud Build.

  1. Open the Triggers page in the Google Cloud Console:

    Open Triggers page

  2. Select your project and click Open.

  3. Click Connect repository.

  4. Under Select source, select GitHub (Cloud Build GitHub App).

  5. Click Continue.

  6. Authenticate your GitHub account.

  7. In the Select repostory section, enter your GitHub account username by clicking Add.

    You will see a pop-up to install the Cloud Build GitHub app.

  8. Click on your GitHub username.

  9. Click Only certain repositories to install the Cloud Build GitHub app on certain repositories.

  10. On the drop-down menu, select GITHUB_USERNAME/cloud-build-samples, where GITHUB_USERNAME is the username for your GitHub account.

  11. Click Install.

    You may be asked to enter the password associated with your GitHub account before proceeding.

  12. Following the installation of the Cloud Build GitHub app, you will now be able to see your username in the drop-down menu on the GitHub account field. Select your username.

  13. Under Repository, select GITHUB_USERNAME/cloud-build-samples as your repository.

  14. Click the checkmark to agree to terms and conditions for trigger connection.

  15. Click Connect

  16. Click Done.

    You will create a trigger in the next section.

Create a trigger

In this section, you will create a trigger.

  1. Open the Triggers page in the Google Cloud Console:

    Open Triggers page

  2. Select your project from the project selector drop-down menu at the top of the page.

  3. Click Open.

  4. Click Create trigger.

    On the Create trigger page, enter the following settings:

    1. Name: Enter hello-world-trigger as the name of your trigger.

    2. Event: Select Push to a branch as the repository event to invoke your trigger.

    3. Source: Select the cloud-build-samples repository as your source, which contains your source code and your build config file.

    4. Build Configuration: Choose Cloud Build configuration file as your build config file.

    5. Cloud Build configuration file location: Specify the path to your Cloud Build configuration file as quickstart-automate/cloudbuild.yaml.

  5. Click Create to save your build trigger.

Commit a change

In this section, you will commit a change to your cloned cloud-build-samples repository on your own GitHub account.

  1. In the terminal window, navigate to the quickstart-automate directory:

      cd code-examaples/quickstart-automate
    
  2. Open the main.go file in your terminal.

  3. Update the line containing "Hello, world!" to "Hello, universe!"

      package main
    
      import (
          "fmt"
      )
    
      func main() {
          fmt.Println("Hello, universe!")
      }
    
  4. Navigate back to the root directory of your repository:

    cd ..
    
  5. Commit your changes to GitHub by running the following command:

    git add quickstart-automate/main.go
    git commit -m "update text"
    git push
    

    You may be prompted to enter your credentials when pushing code to your repository. If prompted, enter your username and password or an authentication token.

You have now pushed a change to your repository. Your push will result in an automatic build by your trigger.

View build details

In this section, you will view the build details associated with your invoked build after committing a change.

  1. Open the Cloud Build page in the Google Cloud Console.

    Open the Cloud Build page

  2. Select your project and click Open.

    You will see the Build history page:

    Screenshot of the build history page for automate

  3. Click on a particular build.

    You will see the Build details page.

  4. To view the artifacts of your build, under Build Summary, click Build Artifacts.

    You will see an output similar to the following:

    Screenshot of build artifacts

    You can download your build log from this page.

Clean up

To avoid incurring charges to your Google Cloud account for the resources used in this page, follow these steps.

  1. Open the Triggers page in the Google Cloud Console.

    Open the Build triggers page

  2. Select your project from the project selector drop-down menu at the top of the page.

  3. Click Open.

  4. Locate the row with the trigger you would like to delete.

  5. Click on the menu (vertical ellipses) located at the right end of the row.

  6. Select Delete.

You have now deleted the trigger associated with your cloned repository.

What's next