Continuous deployment from Git using Cloud Build

You can use Cloud Build to automate builds and deployments to Cloud Run by using Cloud Build trigger to automatically build and deploy your code whenever new commits are pushed to a given branch of a Git repository. For an example walkthrough of creating a template repository and deploying continuously from git, see Continuous deployment quickstart.

When you use a Cloud Build trigger to build containers, the source repository information is displayed in the Google Cloud console for your service after you deploy to Cloud Run.

Before you begin

  • You either have a git repository with a Dockerfile or your codebase is written in one of the languages supported by Google Cloud's buildpacks.
  • Enable the Cloud Build and Cloud Source Repositories APIs.

    Enable the APIs

Setting up continuous deployment from the Cloud Run user interface

The procedure varies slightly depending on whether you are setting up continuous deployment on a new service or on an existing service. Click the appropriate tab to learn more.

New service

  1. Create a new service as described in Deploy a new service, making sure you select Continuously deploy new revisions from a source repository in the Service settings page.

  2. In the Service settings page, click Set up with Cloud Build.

  3. GitHub is the default repository provider. If you are not yet authenticated, click Authenticate and follow the instructions. Connecting a repository is done using the Cloud Build GitHub app.

    Set up Continuous Deployment step 1

  4. Click Next.

  5. Fill the options in Build Configuration step:

    • Branch - indicates what source should be used when running the trigger. You can put the regex here. Matched branches are automatically verified: you can see them below the input. Note that if exactly one branch is matched, the trigger will be automatically executed after the creation.
    • Build Type

      • If your repository should be built using Docker and it contains a Dockerfile, select Dockerfile. Source location indicates the location and name of the Dockerfile. This directory will be used as the Docker build context. All paths should be relative to the current directory.

      • Otherwise, select Google Cloud Buildpacks. Use Buildpack context to specify the directory and Entrypoint (optional) to provide the command to start the server. Example: gunicorn -p :8080 main:app for Python, java -jar target/myjar.jar for Java. Leave it blank to use default behavior.

    Set up Continuous Deployment step 2

  6. Click Save.

  7. Verify the selected settings.

    Set up Continuous Deployment verification

  8. Click Create.

  9. Note that you are redirected to the Service Details page, where you can track the progress of your Continuous Deployment set up.

  10. Once all steps are completed, note additional options:

Existing service

  1. Go to Cloud Run

  2. Locate the service in the services list, and click on it.

  3. Click Set up Continuous Deployment.

  4. GitHub is the default repository provider. If you are not yet authenticated, click Authenticate and follow the instructions. Connecting a repository is done using the Cloud Build GitHub app.

    Set up Continuous Deployment step 1

  5. Click Next.

  6. Fill the options in Build Configuration step:

    • Branch - indicates what source should be used when running the trigger. You can put the regex here. Matched branches are automatically verified: you can see them below the input. Note that if exactly one branch is matched, the trigger will be automatically executed after the creation.
    • Build Type

      • If your repository should be built using Docker and it contains a Dockerfile, select Dockerfile. Source location indicates the location and name of the Dockerfile. This directory will be used as the Docker build context. All paths should be relative to the current directory.

      • Otherwise, select Google Cloud Buildpacks. Use Buildpack context to specify the directory and Entrypoint (optional) to provide the command to start the server. Example: gunicorn -p :8080 main:app for Python, java -jar target/myjar.jar for Java. Leave it blank to use default behavior.

    Set up Continuous Deployment step 2

  7. Click Save.

  8. The page reloads and displays the progress of the Continuous Deployment setup.

  9. Once all steps are completed, note additional options:

Setting up continuous deployment manually

Refer to Setting up continuous deployment manually if you need to use a manual procedure and not the UI.

Attach existing Cloud Build trigger to Cloud Run service.

If you already have an existing Cloud Build trigger, you can attach it to the service and take advantage of Google Cloud console features in the Service Details page: Edit Continuous Deployment button and Build History chart.

To do so, you have to add a label with gcb-trigger-id as a key and the unique identifier of the Cloud Build trigger as value (not the trigger name). See instructions for setting up the label.