@biffo/cli 0.244.0 → 0.244.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,9 +2,15 @@ name: CI
2
2
 
3
3
  # Scaled down from biffo-template's own root .github/workflows/ci.yml for a
4
4
  # single Python package: a plugin repo (per ADR-0003) extends the SDK and
5
- # has no JS/TS and no Terraform of its own — Terraform, if a plugin ships
6
- # any, is provisioned by the *consuming* project's infra, not this repo's
7
- # CI (see README's "What this repo does not build" section).
5
+ # has no JS/TS of its own.
6
+ #
7
+ # It DOES have Terraform. This comment used to claim the opposite — "no
8
+ # Terraform of its own; Terraform, if a plugin ships any, is provisioned by the
9
+ # consuming project's infra, not this repo's CI" — while the skeleton beside it
10
+ # shipped a whole `terraform/` module, and that untrue sentence is exactly why
11
+ # nothing checked it (#1244). What the consuming project provisions is the
12
+ # module's *instantiation*; the module's own source lives here, is edited here,
13
+ # and is only ever checked here. See the `terraform` job below.
8
14
 
9
15
  on:
10
16
  push:
@@ -108,6 +114,48 @@ jobs:
108
114
  run: |
109
115
  uv run python -m jsonschema -i biffo.plugin.json registry-schema.json
110
116
 
117
+ terraform:
118
+ name: Terraform (fmt)
119
+ runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
120
+ timeout-minutes: 20
121
+ # This repo's `terraform/` module is checked by nothing else (#1244). The
122
+ # skeleton shipped the module and no terraform step at all, so every plugin
123
+ # repo was scaffolded with Terraform that nothing looked at — confirmed live
124
+ # in biffo-plugin-idea-scout: three .tf files, zero terraform references
125
+ # across three workflows.
126
+ #
127
+ # `scripts/verify.sh` cannot substitute for this job, and deliberately does
128
+ # not try: its terraform check is guarded by `ci_has "terraform fmt"` so a
129
+ # template-shipped gate never asserts over more than the repo's own CI does
130
+ # (the #325 trap). A repo whose CI checks nothing therefore, correctly, gets
131
+ # nothing locally either. This job is what switches the local gate on.
132
+ #
133
+ # ## Why there is no `terraform validate` here
134
+ #
135
+ # Not an oversight, and do not "fix" it by adding one. `terraform/main.tf`
136
+ # sets `source = "../../cloud/aws/compute"`, a path relative to the module's
137
+ # INSTALL location (`modules/plugins/<name>/` in the consuming monorepo),
138
+ # not to this repo. `terraform init` in `terraform/` therefore fails with
139
+ #
140
+ # Error: Unreadable module directory
141
+ # Unable to evaluate directory symlink: lstat ../../cloud: no such file
142
+ #
143
+ # before `validate` is ever reached — verified against this skeleton. The
144
+ # module is validated where its paths resolve: by the consuming project's
145
+ # own `infra-validate` job, after `biffo plugin install` has copied it into
146
+ # place. See `terraform/README.md`, which has said so all along.
147
+ #
148
+ # fmt alone is not cosmetic. `terraform fmt -check` parses the HCL, so it
149
+ # exits 2 on an unparseable file and 3 on a merely unformatted one — the
150
+ # "a malformed .tf merges green" hole is closed by this step by itself.
151
+ steps:
152
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
153
+ - uses: hashicorp/setup-terraform@v4
154
+ with:
155
+ terraform_version: '~> 1.9'
156
+ - name: Terraform fmt check
157
+ run: terraform fmt -check -recursive terraform/
158
+
111
159
  security-secrets:
112
160
  name: Secret Scan
113
161
  runs-on: ${{ vars.RUNNER_LABEL || 'ubuntu-latest' }}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.244.0",
3
+ "version": "0.244.1",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",