rulssss/CloudCostTree

Analyze Terraform/CloudFormation/Pulumi cost impact and policy compliance, and comment on the PR.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
infra-pathPath to the infrastructure to analyze (Terraform root, .tfstate, CloudFormation template, ...). For 'diff' mode this is the current/PR-branch side.yes
baseline-pathBaseline infrastructure to compare infra-path against. Setting this switches the default mode to 'diff'.no""
policies-pathPath to policies.yaml. Falls back to ./policies.yaml, then ~/.cloudcosttree/policies.yaml, same as the CLI.no""
mode'report' (never fails the build), 'check' (fails on blocking policy violations), or 'diff' (report + check against a baseline). Defaults to 'diff' when baseline-path is set, otherwise 'report'.no""
comment-on-prPost (or update) the analysis as a PR comment when running on a pull_request event.notrue
fail-on-blockingFail this step when a blocking ('error'/'deny') policy violation is found (exit code 2). Non-blocking 'warn' violations (exit code 1) never fail the step.notrue
release-versionWhich cloudcosttree release (tag in this repo) to download the binary + price catalog from. Defaults to the latest.nolatest
terraform-versionTerraform version to install when infra-path needs a live 'terraform plan' and the runner doesn't already have terraform on PATH. Ignored if terraform is already installed (e.g. via hashicorp/setup-terraform).no1.9.8
license-keyCloudCostTree Pro license key (pass a GitHub secret, never a literal value). Confirmed live against the license service on every run, with no local state and no per-machine activation seat consumed — safe to use on every CI job. Omit to run as Free.no""
github-tokenToken used to download the release asset and to post the PR comment via `gh`.no${{ github.token }}
namedescription
exit-codecloudcosttree's own exit code: 0 clean, 1 non-blocking violations only, 2 a blocking violation.
violations-found"true" when exit-code is non-zero (any violation, blocking or not).