Stay organized with collections
Save and categorize content based on your preferences.
You can use Cloud Build to automate builds and deployments to
Knative serving 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.
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
Knative serving.
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:
Go, Node.js, Python, Java or .NET Core.
Enable the Cloud Build and Cloud Source Repositories
APIs.
Setting up continuous deployment from the Knative serving 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
Go to Knative serving in the Google Cloud console:
Select Continuously deploy new revisions from a source repository.
Click Set up with Cloud Build.
Select the provider and the repository.
GitHub - if you are not yet authenticated, click Authenticate
and follow the instructions. By default, connecting a repository is done
via the Cloud Build GitHub app. Alternatively, you can mirror your
GitHub repository in Cloud Source Repositories. To do so, click
Advanced option and check Mirror GitHub repository using
Cloud Source RepositoriesLearn more
Bitbucket - if you are not yet authenticated, click Authenticate
and follow the instructions.
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.
Click Save.
Verify the selected settings.
Click Create.
Note that you are redirected to the Service Details page, where you can
track the progress of your Continuous Deployment set up.
Once all steps are completed, note additional options:
Locate the service in the services list, and click on it.
Click Set up Continuous Deployment.
Select the provider and the repository.
GitHub - if you are not yet authenticated, click Authenticate
and follow the instructions. By default, connecting a repository is done
via the Cloud Build GitHub app. Alternatively, you can mirror your
GitHub repository in Cloud Source Repositories. To do so, click
Advanced option and check Mirror GitHub repository using
Cloud Source RepositoriesLearn more
Bitbucket - if you are not yet authenticated, click Authenticate
and follow the instructions.
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.
Click Save.
The page reloads and displays the progress of the
Continuous Deployment setup.
Once all steps are completed, note additional options:
Attach existing Cloud Build trigger to Knative serving 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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Continuous deployment from Git using Cloud Build\n\nYou can use Cloud Build to automate builds and deployments to\nKnative serving by using [Cloud Build trigger](/build/docs/running-builds/automate-builds)\nto automatically build and deploy your code whenever new commits are pushed to\na given branch of a Git repository.\n\nWhen you use a Cloud Build trigger to build containers, the\n[source repository information is displayed](/kubernetes-engine/enterprise/knative-serving/docs/managing/revisions#build-source)\nin the Google Cloud console for your service after you deploy to\nKnative serving.\n\nBefore you begin\n----------------\n\n- 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](/docs/buildpacks/overview): Go, Node.js, Python, Java or .NET Core.\n-\n\n\n Enable the Cloud Build and Cloud Source Repositories\n APIs.\n\n\n [Enable the APIs](https://console.cloud.google.com/flows/enableapi?apiid=sourcerepo.googleapis.com,cloudbuild.googleapis.com)\n\nSetting up continuous deployment from the Knative serving user interface\n------------------------------------------------------------------------\n\nThe procedure varies slightly depending on whether you are setting up\ncontinuous deployment on a new service or on an existing service. Click the\nappropriate tab to learn more. \n\n### New service\n\n1. Go to Knative serving in the Google Cloud console:\n\n [Go to Knative serving](https://console.cloud.google.com/kubernetes/run)\n2. Click **Create service**.\n\n3. Fill the *Service Settings* with your preferences.\n\n4. Click **Next**.\n\n5. Select **Continuously deploy new revisions from a source repository**.\n\n6. Click **Set up with Cloud Build**.\n\n7. Select the provider and the repository.\n\n - *GitHub* - if you are not yet authenticated, click **Authenticate** and follow the instructions. By default, connecting a repository is done via the Cloud Build GitHub app. Alternatively, you can mirror your GitHub repository in Cloud Source Repositories. To do so, click *Advanced option* and check *Mirror GitHub repository using\n Cloud Source Repositories* [Learn more](/build/docs/automating-builds/create-github-app-triggers?#different_types_of_github-based_triggers)\n - *Bitbucket* - if you are not yet authenticated, click **Authenticate** and follow the instructions.\n - [*Cloud Source Repositories*](/source-repositories/docs)\n\n8. Click **Next**.\n\n9. Fill the options in Build Configuration step:\n\n - *Branch* - indicates what source should be used when running the trigger. You can put the [regex](https://github.com/google/re2/wiki/Syntax) 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.\n - *Build Type*\n\n - If your repository should be built using Docker and it contains a\n Dockerfile, select **Dockerfile** . **Source location** indicates the\n location and name of the Dockerfile. This directory will be used as the\n Docker build context. All paths should be relative to the current\n directory.\n\n - Otherwise, select **Google Cloud Buildpacks** . Use\n **Buildpack context** to specify the directory and **Entrypoint**\n (optional) to provide the command to start the server. Example:\n `gunicorn -p :8080 main:app` for Python,\n `java -jar target/myjar.jar` for Java. Leave it blank to use\n [default behavior](/docs/buildpacks/service-specific-configs).\n\n10. Click **Save**.\n\n11. Verify the selected settings.\n\n12. Click **Create**.\n\n13. Note that you are redirected to the *Service Details* page, where you can\n track the progress of your Continuous Deployment set up.\n\n14. Once all steps are completed, note additional options:\n\n - Edit Continuous Deployment button.\n - Build History.\n - Source details in the [*Revision Details* section](/kubernetes-engine/enterprise/knative-serving/docs/managing/revisions#viewing_revision_details).\n\n### Existing service\n\n1. Go to Knative serving in the Google Cloud console:\n\n [Go to Knative serving](https://console.cloud.google.com/kubernetes/run)\n2. Locate the service in the services list, and click on it.\n\n3. Click **Set up Continuous Deployment**.\n\n4. Select the provider and the repository.\n\n - *GitHub* - if you are not yet authenticated, click **Authenticate** and follow the instructions. By default, connecting a repository is done via the Cloud Build GitHub app. Alternatively, you can mirror your GitHub repository in Cloud Source Repositories. To do so, click *Advanced option* and check *Mirror GitHub repository using\n Cloud Source Repositories* [Learn more](/build/docs/automating-builds/create-github-app-triggers?#different_types_of_github-based_triggers)\n - *Bitbucket* - if you are not yet authenticated, click **Authenticate** and follow the instructions.\n - [*Cloud Source Repositories*](/source-repositories/docs)\n\n5. Click **Next**.\n\n6. Fill the options in Build Configuration step:\n\n - *Branch* - indicates what source should be used when running the trigger. You can put the [regex](https://github.com/google/re2/wiki/Syntax) 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.\n - *Build Type*\n\n - If your repository should be built using Docker and it contains a\n Dockerfile, select **Dockerfile** . **Source location** indicates the\n location and name of the Dockerfile. This directory will be used as the\n Docker build context. All paths should be relative to the current\n directory.\n\n - Otherwise, select **Google Cloud Buildpacks** . Use\n **Buildpack context** to specify the directory and **Entrypoint**\n (optional) to provide the command to start the server. Example:\n `gunicorn -p :8080 main:app` for Python,\n `java -jar target/myjar.jar` for Java. Leave it blank to use\n [default behavior](/docs/buildpacks/service-specific-configs).\n\n7. Click **Save**.\n\n8. The page reloads and displays the progress of the\n Continuous Deployment setup.\n\n9. Once all steps are completed, note additional options:\n\n - Edit Continuous Deployment button.\n - Build History.\n - Source details in the [*Revision Details* section](/kubernetes-engine/enterprise/knative-serving/docs/managing/revisions#viewing_revision_details).\n\nSetting up continuous deployment manually\n-----------------------------------------\n\nRefer to\n[Setting up continuous deployment manually](/build/docs/deploying-builds/deploy-cloud-run)\nif you need to use a manual procedure and not the UI.\n\nAttach existing Cloud Build trigger to Knative serving service.\n---------------------------------------------------------------\n\nIf you already have an existing Cloud Build trigger, you can attach it to\nthe service and take advantage of Google Cloud console features in the Service\nDetails page: **Edit Continuous Deployment** button and **Build History** chart.\n\nTo do so, you have to add a label with \u003cvar translate=\"no\"\u003egcb-trigger-id\u003c/var\u003e as a key and\nthe unique identifier of the Cloud Build trigger as value (not the trigger\nname). See [instructions](/kubernetes-engine/enterprise/knative-serving/docs/configuring/labels#set-labels) for\nsetting up the label."]]