@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
|
|
6
|
-
#
|
|
7
|
-
#
|
|
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' }}
|