2019-08-23 14:22:47 -07:00
---
2023-06-02 21:41:36 -07:00
title_tag: "Continuous Delivery for the Cloud"
SEO Optimization, KW "cloud continuous delivery" (#2824)
* SEO Optimization, KW "cloud continuous delivery"
Primary KW: cloud continuous delivery
Secondary KWs: continuous delivery, continuous deployment pipeline, cloud continuous integration
Semantic analysis (language/topics to include more of): integration, software, testing, tests, deployment, build, development, production
Note: one way to get more semantically relevant language onto this page would be to write out the CI/CD systems as well as linking to them, but I can understand if you feel that messes things up aesthetically.
* Update content/docs/guides/continuous-delivery/_index.md
* Update content/docs/guides/continuous-delivery/_index.md
Co-authored-by: Zack Chase <zachary@pulumi.com>
2020-04-09 16:46:01 -06:00
meta_desc: Pulumi's approach to infrastructure as code is great for CI/CD because it uses source code to model cloud resources and integrates into any CI/CD system.
2023-05-15 15:25:28 -07:00
title: Continuous Delivery
h1: Pulumi & Continuous delivery
2023-06-08 16:15:52 -07:00
meta_image: /images/docs/meta-images/docs-meta.png
2019-08-23 14:22:47 -07:00
menu:
2023-05-15 15:25:28 -07:00
usingpulumi:
2020-04-13 16:53:40 -07:00
name: Continuous Delivery
2019-08-23 14:22:47 -07:00
identifier: cont_delivery
2023-10-05 10:43:11 -07:00
weight: 5
2019-08-23 14:22:47 -07:00
aliases:
- /docs/reference/cd/
- /docs/console/continuous-delivery/
2023-05-15 15:25:28 -07:00
- /docs/guides/continuous-delivery/
2019-08-23 14:22:47 -07:00
---
Pulumi's approach to infrastructure as code is great for continuous delivery, because it uses source code to model
cloud resources. This means updates to your cloud infrastructure can be reviewed, validated, and tested using the same
process that you have today. For example, doing code reviews via Pull Requests, running code through linters or static
analysis tools, and running unit and integration tests as appropriate. It all "just works" for your cloud
2019-12-30 13:37:12 -08:00
infrastructure the same way it would for your application code.
2019-08-23 14:22:47 -07:00
2023-05-15 15:25:28 -07:00
Pulumi can easily integrate into any continuous integration/continuous delivery (CI/CD) system. If your CI/CD system isn't listed below or you are testing something new, see [adding support for CI/CD systems ](/docs/using-pulumi/continuous-delivery/add-support-for-cicd-systems ).
2019-08-23 14:22:47 -07:00
2023-05-15 15:25:28 -07:00
> Looking to troubleshoot failures related to running Pulumi in CI/CD? Check out our [CI/CD troubleshooting guide](/docs/using-pulumi/continuous-delivery/troubleshooting-guide).
2020-10-12 13:19:19 -07:00
2019-08-23 14:22:47 -07:00
< div class = "supported-cicd-platforms" >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/aws-code-services" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/aws-codedeploy.svg" alt = "AWS Code Services" >
< h4 class = "no-anchor" > AWS Code Services< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/azure-devops" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/azure-devops.svg" alt = "Azure DevOps" >
< h4 class = "no-anchor" > Azure DevOps< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/circleci" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/circleci.svg" alt = "CircleCI" >
< h4 class = "no-anchor" > CircleCI< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/codefresh" >
2021-06-15 06:29:32 -07:00
< img src = "/logos/tech/ci-cd/codefresh.svg" alt = "Codefresh" >
2019-08-23 14:22:47 -07:00
< h4 class = "no-anchor" > Codefresh< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/github-actions" >
2021-06-15 06:29:32 -07:00
< img src = "/logos/tech/ci-cd/github-actions.svg" alt = "GitHub Actions" >
2019-08-23 14:22:47 -07:00
< h4 class = "no-anchor" > GitHub Actions< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/gitlab-ci" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/gitlab-ci.svg" alt = "GitLab CI" >
< h4 class = "no-anchor" > GitLab CI< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/google-cloud-build" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/google-cloud-build.png" alt = "Google Cloud Build" >
< h4 class = "no-anchor" > Google Cloud Build< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/jenkins" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/jenkins.svg" alt = "Jenkins" >
< h4 class = "no-anchor" > Jenkins< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/octopus-deploy" >
2019-10-09 15:38:46 -07:00
< img src = "/logos/tech/ci-cd/octopus-deploy.svg" alt = "Octopus Deploy" >
< h4 class = "no-anchor" > Octopus Deploy< / h4 >
< / a >
2023-05-15 17:51:16 -07:00
< a href = "/docs/pulumi-cloud/deployments/" >
2022-11-01 21:17:17 -07:00
< img src = "/logos/brand/avatar-on-white.png" alt = "Pulumi Deployments" >
< h4 class = "no-anchor" > Pulumi Deployments< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/pulumi-kubernetes-operator" >
2020-08-11 23:07:23 -07:00
< img src = "/logos/tech/ci-cd/kubernetes.png" alt = "Pulumi Kubernetes Operator" >
< h4 class = "no-anchor" > Pulumi Kubernetes Operator< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/teamcity" >
2021-06-15 20:20:54 -07:00
< img src = "/logos/tech/ci-cd/teamcity.svg" alt = "JetBrains TeamCity" >
< h4 class = "no-anchor" > JetBrains TeamCity< / h4 >
2020-06-17 22:31:02 -07:00
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/spinnaker" > }}">
2020-06-17 22:31:02 -07:00
< img src = "/logos/tech/ci-cd/spinnaker.svg" alt = "Spinnaker" >
< h4 class = "no-anchor" > Spinnaker< / h4 >
< / a >
2023-05-15 15:25:28 -07:00
< a href = "/docs/using-pulumi/continuous-delivery/travis" >
2019-08-23 14:22:47 -07:00
< img src = "/logos/tech/ci-cd/travis-ci.svg" alt = "TravisCI" >
< h4 class = "no-anchor" > TravisCI< / h4 >
< / a >
< / div >
> Pulumi can also bridge results from your CI/CD system with GitHub, surfacing the results of stack updates
2023-05-15 15:25:28 -07:00
> on GitHub pull requests. See the [Pulumi GitHub App](/docs/using-pulumi/continuous-delivery/github-app/) for more information.
2019-08-23 14:22:47 -07:00
### Configuration and Secrets
Pulumi is designed to be entirely code-centric, including the way in which configuration and secrets are managed.
Configuration values and secrets are stored safely inside of `Pulumi.yaml` files, which you will commit.
The source is effectively everything that Pulumi needs to for deployment, with minimal external dependencies.
Secret configuration values are encrypted on [app.pulumi.com ](https://app.pulumi.com ) and are safe to check into your
source code repository. But you can use your own secrets provider, ensuring that only you have access to your
2022-10-26 07:22:15 -07:00
sensitive information. See [Managing Secrets with Pulumi ](/blog/managing-secrets-with-pulumi/ ) for more information.
2019-08-23 14:22:47 -07:00
### Managing Complex Environments
Most real-world environments are complex. Perhaps you have a networking stack that's independent from your data
2022-10-26 07:22:15 -07:00
and application stacks. Pulumi [supports "stack references" ](/docs/guides/organizing-projects-stacks ), which
SEO Optimization, KW "cloud continuous delivery" (#2824)
* SEO Optimization, KW "cloud continuous delivery"
Primary KW: cloud continuous delivery
Secondary KWs: continuous delivery, continuous deployment pipeline, cloud continuous integration
Semantic analysis (language/topics to include more of): integration, software, testing, tests, deployment, build, development, production
Note: one way to get more semantically relevant language onto this page would be to write out the CI/CD systems as well as linking to them, but I can understand if you feel that messes things up aesthetically.
* Update content/docs/guides/continuous-delivery/_index.md
* Update content/docs/guides/continuous-delivery/_index.md
Co-authored-by: Zack Chase <zachary@pulumi.com>
2020-04-09 16:46:01 -06:00
permit one stack to depend upon another. This facilitates continuous delivery and integration at scale.
2019-08-23 14:22:47 -07:00
### Using Branches for Environments
Pulumi is agnostic to what sort of branching strategy you take. Most customers use Git-based flows; the most common is
2023-05-15 15:25:28 -07:00
to use one branch-per-[stack ](/docs/concepts/stack/ ). This allows you to control deployments to environments
2019-08-23 14:22:47 -07:00
using your usual commit, code review, and approval process, such as GitHub pull requests.
If you are using GitHub pull requests to trigger updates, you will likely want to use the
2023-05-15 15:25:28 -07:00
[Pulumi GitHub App ](/docs/using-pulumi/continuous-delivery/github-app/ ). This gives you interactive infrastructure change previews
2019-08-23 14:22:47 -07:00
inside of your Pull Request, making it easier to see, review, and comment on any changes before a deployment occurs.