title: Deploy AWS with Pulumi description: Preview and deploy Pulumi changes to AWS using Node.js and npm author: "Buildkite" use_cases: ["IaC", "CI"] languages: ["JavaScript"] platforms: ["Pulumi", "Docker", "AWS"] tools: [] primary_emojis: [":pulumi:", ":aws-logo:"]
This template gives you a continuous integration and continuous deployment (CI/CD) pipeline that previews a Pulumi change before deploying it to AWS.
At a glance:
- For Pulumi projects
- Uses Node.js and npm
- Requires Docker
- Prompts for confirmation before deploying
- Deploys to AWS
This template:
- Assumes a role in AWS using Buildkite’s OIDC.
- Installs Node dependencies using npm.
- Prints a preview of the Pulumi change in an annotation on the build.
- Asks for manual confirmation to deploy the change.
- Deploys the Pulumi change to AWS with
pulumi up
.
The runtime environment uses a Docker image with the Pulumi CLI and Node.js.
After you select Use template, you’ll:
- Connect the Git repository with your Pulumi code.
- Set Buildkite as an OIDC provider in AWS.
- Set the
AWS_ROLE_ARN
environment variable to a role with permission to deploy Pulumi changes to your AWS account. - Set the
PULUMI_STACK
environment variable to the Pulumi Stack being deployed. - Store
PULUMI_ACCESS_TOKEN
in your pipeline secrets. - Configure the compute—run locally, on-premises, or in the cloud.
- Run the pipeline.