Skip to content

feat: add nitro-contracts-version dimension to CI runtime images#1

Merged
douglance merged 1 commit intomainfrom
dl/nitro-contracts-version
Mar 30, 2026
Merged

feat: add nitro-contracts-version dimension to CI runtime images#1
douglance merged 1 commit intomainfrom
dl/nitro-contracts-version

Conversation

@douglance
Copy link
Copy Markdown
Collaborator

Summary

  • Adds nitro-contracts-version input to the composite action (default: v3.2, options: v2.1, v3.2)
  • Image tag format changes from {version}-{variant} to {version}-nc{major.minor}-{variant} (e.g. v0.2.0-nc3.2-l3-custom-18)
  • Exports ARBITRUM_TESTNODE_NITRO_CONTRACTS_VERSION and INTEGRATION_TEST_NITRO_CONTRACTS_BRANCH env vars
  • Updates release workflow with nitro-contracts-version input and nc tag component
  • Adds nitroContractsVersion to snapshot manifest and runtime metadata

This enables consumers like arbitrum-orbit-sdk to test against multiple nitro-contracts versions using the same action.

Files changed

  • scripts/action/lib.mjsCONTRACTS_VERSIONS map, normalizeContractsVersion(), updated buildImageRef() and buildActionState()
  • action.yml — new input/output, wired through resolve and run steps
  • scripts/action/resolve.mjs / run.mjs — thread contracts version, export env vars
  • scripts/ci/prepare-runtime-context.mjs--nitro-contracts-version arg, metadata.json
  • .github/workflows/release-ci-runtime.yml — new input, tag step, updated image tag
  • .github/workflows/test-action.yml — passes nitro-contracts-version: v3.2
  • src/snapshot.ts — optional nitroContractsVersion on manifest
  • test/ci-action.test.ts — updated + 2 new tests
  • test/ci-runtime-context.test.ts — metadata assertion

Test plan

  • ci-action.test.ts — 10 tests pass (contracts version in image ref, defaults, validation)
  • ci-runtime-context.test.ts — metadata includes nitroContractsVersion
  • test-action.yml workflow passes on PR (builds local image with nc3.2 tag)

Adds a `nitro-contracts-version` input to the composite action so consumers
can select which nitro-contracts version (v2.1, v3.2) the Docker image was
built against. Image tags now include an `nc` prefix component:
`{version}-nc{major.minor}-{variant}` (e.g. v0.2.0-nc3.2-l3-custom-18).

The action exports ARBITRUM_TESTNODE_NITRO_CONTRACTS_VERSION and
INTEGRATION_TEST_NITRO_CONTRACTS_BRANCH env vars for downstream tests.
@douglance douglance merged commit 8cb72f8 into main Mar 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant