chore(gha): adopt the new jsii-terraform image and test Terraform 1.5.7 + 1.16.1 - #398
Merged
so0k merged 3 commits intoSep 9, 2026
Merged
Conversation
jsteinich
force-pushed
the
chore/bump-jsii-terraform-digest
branch
from
September 8, 2026 11:05
4761a46 to
41f78d7
Compare
8 tasks
This comment was marked as resolved.
This comment was marked as resolved.
8 tasks
…TF 1.16.1 Points all 27 pinned references across the 11 workflow files at the image published from 2f29d5a (open-constructs#394), which is the first one carrying OpenTofu 1.12.6, Terraform 1.5.7 and 1.16.1, the fail-fast install layers and the post-install binary verification. This is purely the digest bump. `tested` still runs 1.5.5 and 1.6.5, so no job counts or version coverage change here — that comes next, now that the binaries are actually present in the image CI runs. Digest confirmed to be the build of 2f29d5a: the immutable 0.24.0-2f29d5a8d45b047c5450eee9640e1cbaaee98c8d tag and :latest both resolve to sha256:62c00a31... Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.5.7 is the newest pre-fork release and the exact floor cdktn already declares: DEFAULT_TARGET_VERSIONS in packages/cdktn/src/validations/target-versions.ts is `terraform: ">=1.5.7"`. The matrix was testing 1.5.5, which nothing declares support for. This is a rename of an existing leg, not a new one — same number of jobs, same cross-product. It relies on the image digest bumped in the previous commit, which is the first to carry a terraform1.5.7 binary. The two hardcoded terraform_version lists in pr-unit.yml and release.yml move with it. They duplicate `tested` from .terraform.versions.json rather than deriving from it; worth fixing separately so a version change is a one-file edit. Deliberately not included: moving the upper leg from 1.6.5 to 1.16.1, and `default` with it. `cdktn get` is broken from Terraform 1.15.7 on for any module declaring configuration_aliases (open-constructs#379); the fix is open in open-constructs#383 and is not in main, so raising the ceiling now would land red. That half should follow open-constructs#383. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Unblocked by open-constructs#383, which landed in 54a8217. `cdktn get` was broken from Terraform 1.15.7 on for any module declaring configuration_aliases (open-constructs#379), so until that fix was in main this half would have landed red. Like the floor-leg move, this renames the upper leg rather than adding one: `tested` goes from 1.5.7 + 1.6.5 to 1.5.7 + 1.16.1, so the integration cross-product keeps the same job count. Together the two legs now span the declared floor and current stable instead of two adjacent 2023 releases, which is what open-constructs#337 needed to exercise the newer-protocol schema sections at all. `default` moves to 1.16.1 as well. That is what the examples matrix builds against (tools/build-example-matrix.mjs reads `.default`) and, less obviously, what every provider-integration run uses: the terraform_version input in provider-integration.yml is defaulted rather than passed, and none of its three callers override it. The duplicated unit-test matrices in pr-unit.yml and release.yml move with it. `available` is deliberately left alone — 1.5.5 and 1.6.5 are now unreferenced, but pruning them only takes effect once the workflows repin to a rebuilt image, so it belongs with the next digest bump rather than here. Not touched: tools/generate-function-bindings/function-availability/ functions-matrix.json, which lists 1.6.5 among every other release as generated function-availability data, not as a CI version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
so0k
force-pushed
the
chore/bump-jsii-terraform-digest
branch
from
September 9, 2026 09:27
41f78d7 to
2f51249
Compare
so0k
approved these changes
Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issue
Follow-up to #394. Step 2 of the sequencing agreed in #337. Rebased on #383, which unblocks the ceiling half.
Description
Three commits, all consequences of #394 having published a new image and #383 having fixed
cdktn geton modern Terraform.1. Bump the pinned image digest — all 27 references across 11 workflow files move to
sha256:62c00a31..., the image built from 2f29d5a. Confirmed to be that build::latestand the immutable0.24.0-2f29d5a8d45b047c5450eee9640e1cbaaee98c8dtag resolve to the same digest. First image carrying OpenTofu 1.12.6, Terraform 1.5.7 and 1.16.1, the fail-fast install layers and the post-install binary verification.2. Move the floor leg from Terraform 1.5.5 to 1.5.7 — 1.5.7 is the newest pre-fork release and the exact floor cdktn already declares.
DEFAULT_TARGET_VERSIONSinpackages/cdktn/src/validations/target-versions.tsis{ terraform: ">=1.5.7", opentofu: ">=1.6.0" }, so every project that declares notargetVersionsis told 1.5.7 is supported, while CI was testing 1.5.5 — a version nothing declares.3. Raise the ceiling from 1.6.5 to 1.16.1 — unblocked by #383 (54a8217).
cdktn getwas broken from Terraform 1.15.7 onward for any module declaringconfiguration_aliases(#379); until that fix was in main this would have landed red.Both version changes are renames of existing legs, not additions —
testedgoes from["1.5.5", "1.6.5"]to["1.5.7", "1.16.1"], so the integration cross-product keeps the same job count and the CI bill is unchanged. The two legs now span the declared floor and current stable instead of two adjacent 2023 releases, which is what #337 needed in order to exercise the newer-protocol schema sections (functions,ephemeral_resource_schemas,write_only) at all — the previous 1.6.5 ceiling structurally could not emit them.defaultmoves to 1.16.1 with it. That drives the examples matrix (tools/build-example-matrix.mjsreads.default) and — less obviously — every provider-integration run:provider-integration.yml'sterraform_versioninput is defaulted rather than passed, and none of its three callers override it. The duplicated unit-test matrices inpr-unit.ymlandrelease.ymlmove with it too.Deliberately not included
available. They are unreferenced now, but editing.terraform.versions.jsononly rebuilds the image on merge — the workflows stay pinned to the current digest, so the prune would not take effect until a later bump. It belongs with the next digest bump.tools/generate-function-bindings/function-availability/functions-matrix.jsonstill lists 1.6.5. That is generated function-availability data covering every release, not a CI version.Follow-ups
terraform_versionmatrices inpr-unit.ymlandrelease.ymlfrom.terraform.versions.jsoninstead of duplicatingtestedin three places, so a version change is a one-file edit.Checklist
🤖 Generated with Claude Code