Skip to content

Trigger

WARNING

This is an experimental command and is likely subject to change in the future.

The terramate experimental trigger command forcibly marks a stack as "changed" even if it doesn't contain any code changes according to the change detection. It does this by creating a file (by default in /.tmtriggers) which should then be committed. terramate run will then execute commands against any stacks that have been triggered in the last commit (as well as any other changed stacks).

The trigger mechanism has various use cases. It may be that a previous CI/CD run failed or that you have detected a drift between the code and the actual state. For those using Terramate Cloud, the additional --status=<status> argument can be used to trigger stacks that are in one of the following states:

StatusMeaning
okThe stack is not drifted and the last deployment succeeded
failedThe last deployment of the stack failed so the status is unknown
driftedThe actual state is different from that defined in the code of the stack
unhealthyThis meta state matches any undesirable state (failed, drifted etc)
healthyThis meta state matches stacks that have no undesirable state

Usage

sh
terramate experimental trigger [options] <stack-path>

Examples

Trigger a stack as changed

bash
terramate experimental trigger /path/to/stack

Trigger all drifted stacks as changed

bash
terramate experimental trigger --status=drifted

Recursively trigger stacks to ignore them.

bash
terramate experimental trigger some/path --recursive --ignore-change

Ignore Trigger

When you make cosmetic changes to one or more stacks that don't affect the managed resources, you can use the --ignore-change flag to trigger those stacks to remain unchanged. This flag configures the change detection to ignore these stacks in the next Pull Request and deployment.

bash
terramate experimental trigger /path/to/stack --ignore-change

Options

  • --status <status>: Trigger all stacks filtered by status on Terramate Cloud.
  • --recursive: recursively triggers all nested stacks starting from the targeted stack.
  • --change (default): Trigger a stack to configure change detection, marking it as changed.
  • --ignore-change: Trigger a stack to configure change detection, marking it unchanged in the next run.