Automating Builds using Build Triggers

A build trigger instructs Cloud Build to automatically build your image whenever there are changes pushed to the build source. You can set a build trigger to re-build your images on any changes to the source repository, or only changes that match certain criteria.

Build triggers can help ensure that your container images are always based on the latest version of their source code. They're also useful for building and testing feature branches prior to release or for automating the workflows that produce your container images.

This page explains how to create build triggers.

Before you begin

Creating a build trigger

To create a new build trigger:

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

    Open the Build triggers page

  2. Select your project and click Open.

  3. Click Add trigger.

  4. Select one of the following host repositories for your build source:

    • Cloud Source Repository
    • Bitbucket
    • GitHub

    To build your source on a Git repo, Cloud Build performs a shallow clone of the repo. This means that only the single commit that triggered the build is checked out in the workspace to build. Cloud Build does not check out any other branches or history. This is done for efficiency, so that builds don't have to wait to fetch the whole repository and history just to build a single commit.

    If you want to include more of your repo's history in the build, add a build step in your build config file to "unshallow" the clone. For example:

        steps:
        - name: gcr.io/cloud-builders/git
          args: ['fetch', '--unshallow']
        ...
    

    For more information on git fetch see git reference. For instructions on writing a build config file see Build config overview.

  5. Click Continue.

  6. From the list of available repositories, select the desired repository, then click Continue.

  7. Enter the following trigger settings:

    • Name (optional): An name for your trigger.
    • Trigger Type: You can set a trigger to start a build on commits to a particular branch, or on commits that contain a particular tag. In either case, you can specify a regular expression with the branch or tag value to match. For information on acceptable regular expression syntax, see RE2 syntax.

    • Included files (optional): Changes to these files will trigger a build. You can use glob strings to specify multiple files with wildcard characters. Acceptable wildcard characters include the characters supported by Go Match, **, and alternation.

    • Ignored files (optional): Changes to these files will not trigger a build. You can use glob strings to specify multiple files with wildcard characters. Acceptable wildcard characters include the characters supported by Go Match, **, and alternation.

      If you specify the a file in both Included files and Ignored files, changes to that file will not trigger a build. Say you specify **/README.md in Ignored files to ignore README.md in any directory, and specify src/* in Included files to trigger a build on changes to any file in the folder src/. Now if you make a change to src/README.md, Cloud Build will not trigger a build.

    • Build Configuration: The Dockerfile or build config file (located in the remote repository) to use for each build that the trigger starts.

    To use a Dockerfile for your build configuration, you'll need to specify the Dockerfile directory and supply a name for the resulting image.

    When you've provided the Dockerfile and image name, you'll see a preview of the docker build command that your build will execute and a summary of the trigger configuration. Click Create trigger to save the build trigger.

    To use a build config file for your build configuration, you'll need to provide the location of a build config file.

    Once you've set the location, you'll see a summary of the trigger. Click Create trigger to save the build trigger.

    Note: You can use built-in variables in the build config file.

Testing a build trigger

To manually test a build trigger, click Run trigger on your trigger's entry in the triggers list.

Skipping a build trigger

In some cases, you may want to make a change to your source code but you don't want to trigger a build. For example, you might not want to trigger a build when you update documentation or configuration files.

In such scenarios, you can include [skip ci] or [ci skip] in the commit message, and a build will not be triggered.

If you want to run a build on that commit later, use the Run trigger button.

What's next

Was this page helpful? Let us know how we did:

Send feedback about...

Cloud Build