You push a branch expecting an environment to appear like magic, but instead you’re babysitting YAML and waiting for credentials to time out. Every DevOps engineer has lived that scene. Bitbucket Pipelines can automate the build. Pulumi can automate the cloud. Together, they promise to automate everything, if you connect them correctly.
Bitbucket handles your version control and CI/CD triggers. Pulumi brings infrastructure-as-code with real programming languages and state management that works across AWS, Azure, and GCP. When you tie Bitbucket Pulumi together, your pipeline becomes an environment factory that manages identity, configuration, and audits automatically. The trick is aligning each system’s concept of trust.
Bitbucket runs pipelines inside containers with short-lived service accounts. Pulumi expects authenticated cloud credentials and encrypted secrets. The integration flow starts when your Bitbucket pipeline invokes Pulumi using personal access tokens or OIDC federation. Tokens let Pulumi read the correct stack and update cloud resources, while OIDC gives Bitbucket jobs secure, temporary credentials tied to your organization’s identity provider. This eliminates static keys from pipelines forever.
A common setup assigns each repository a Pulumi stack that maps to a cloud environment. The Pulumi access token sits securely in Bitbucket’s workspace-level secrets. At runtime, Pulumi fetches configuration from its state backend, validates policy packs, and applies changes. It logs everything so your infrastructure trace matches your commit history. That’s continuous delivery in the literal sense.