
Trigger Deployments on Git Tags
A git tag is how many teams mark a release as ready. Pulumi Deployments can now act on that signal directly: configure a tag-based trigger, push a version tag like v1.2.0, and Pulumi automatically runs pulumi up for your stack. No extra pipeline glue, no manual click — your release tag is the deployment.
Why tags?
Push to Deploy has long let you preview changes on a pull request and update a stack when commits merge to a branch. That branch-based model is a great fit for continuous delivery to shared development and QA environments, where every merge should flow straight through.
But promotion to production is often deliberate, not continuous. You merge throughout the day, then decide — separately — that a particular commit is the release. The conventional way to record that decision is a git tag: v1.2.0, 2026.06.0, release-2026-06-04. Tagging is already part of most teams’ release rituals.
Tag-based triggers connect that ritual to your infrastructure. Instead of wiring up a separate CI job to call the Pulumi Deployments REST API on a tag event, you configure the trigger once in your stack’s deployment settings and let Pulumi handle the rest.
How it works
Tag triggers are controlled by two settings on your stack’s deployment configuration:
- Run updates for pushed tags — a toggle that enables running
pulumi upwhen a matching tag is pushed. - Tag filters — a list of glob patterns that decide which tag names qualify.
Tag filters use the same model as the path filters you may already know, except the patterns match against the tag name rather than changed file paths. A few examples:
v*— deploy on any tag beginning withv, such asv1.0.0andv2.3.1.v*plus!*-rc*— deploy on release tags but skip release candidates likev1.2.0-rc1.2026.*— deploy on calendar-versioned releases such as2026.06.0.
Filters prefixed with ! are exclusions, and an exclusion always wins over an include. With no filters configured and the toggle on, every tag push deploys. Deleting a tag never triggers a deployment.
When a tag push kicks off a deployment, Pulumi sets the PULUMI_CI_TAG_NAME environment variable to the tag name. Your pre-run commands or your Pulumi program can read it — for example, to stamp the release version onto a resource tag or an application config value.
Works across every VCS integration
Tag triggers are available across all five version control integrations: GitHub, GitLab, Bitbucket, Azure DevOps, and Custom VCS.
Get started
You can configure tag triggers wherever you manage deployment settings today — the Pulumi Cloud console, the REST API, or as code with the pulumiservice.DeploymentSettings resource.
To try it out:
- Open a stack’s Settings > Deploy tab in the Pulumi Cloud console.
- Enable Run updates for pushed tags and add a tag filter such as
v*. - Push a tag —
git tag v1.0.0 && git push origin v1.0.0— and watch the deployment run.
For the full details, see the deployment triggers and tag filtering documentation. We’d love to hear how you put tag-based deployments to work.