Skip to content

[codex] add Ink compilePackages smoke CI#4347

Draft
andrewtdiz wants to merge 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-ink-ci-smoke
Draft

[codex] add Ink compilePackages smoke CI#4347
andrewtdiz wants to merge 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-ink-ci-smoke

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Linked issue: #803

Summary

This wires the existing tests/release/packages/ink-link-smoke fixture into the Tests workflow as a named extended CI job. The job runs on version tags, on workflow_dispatch with run_extended_tests=true, and on PRs labeled run-extended-tests, matching the existing expensive package-smoke pattern.

The PR also refreshes the Ink fixture so the new job is actually green on current main:

  • expands the fixture perry.compilePackages / perry.allow.compilePackages list to include the locked Ink transitive package graph;
  • enables perry.experiments.treeShake and production/dev defines for the fixture;
  • patches yoga-layout's WASM-backed default export after install, keeping this link-only fixture focused on the package graph and native symbol surface rather than runtime layout execution;
  • uploads fixture compile/install logs from CI.

Why this cut

#803 asks for a CI job around a canonical Ink compilePackages program. The fixture already existed, but running it on current main exposed stale trust metadata and a yoga WASM bootstrap link symbol. Keeping the CI job and fixture repairs together avoids landing a job that would be red immediately.

Tests and checks

  • bash -n tests/release/packages/ink-link-smoke/fixture.sh && bash -n tests/release/packages/_harness.sh && bash -n tests/release/packages/_fixture_lib.sh
  • local YAML/JSON parse assertions for .github/workflows/test.yml and tests/release/packages/ink-link-smoke/package.json
  • cargo fmt --all -- --check
  • git diff --check
  • ./scripts/check_file_size.sh
  • cargo build --release -p perry-runtime -p perry-stdlib -p perry
    • first parallel attempt was killed by signal 9 while compiling the full stdlib staticlib;
    • rerun with CARGO_BUILD_JOBS=1 cargo build --release -j1 -p perry-runtime -p perry-stdlib -p perry passed.
  • cd tests/release/packages/ink-link-smoke && PERRY_BIN=/root/perry-worktrees/perry-node-ink-ci-smoke/target/release/perry bash fixture.sh passed.
  • PERRY_BIN=/root/perry-worktrees/perry-node-ink-ci-smoke/target/release/perry tests/release/packages/_harness.sh --filter ink-link-smoke passed: 1 passed, 0 failed, 0 skipped.

Known limitations

This remains compile/link-only. It does not execute Ink rendering, does not validate yoga-layout runtime behavior, and does not claim end-to-end TUI compatibility.

Non-goals

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