Skip to content

feat: add cached setup-wright Action - #1

Merged
Teakowa merged 1 commit into
mainfrom
claude/feat-import-setup-wright-4f4eac
Oct 20, 2026
Merged

Teakowa merged 1 commit into
mainfrom
claude/feat-import-setup-wright-4f4eac

Conversation

@e54-bot

@e54-bot e54-bot commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Moves the cached setup-wright composite Action out of wrightkit/wright (superseding wrightkit/wright#867) into this repository. Target call: uses: wrightkit/setup-wright@v1.

Decision: the owner split the Action out because wrightkit/wright/.github/actions/setup-wright@<release-ref> is an awkward call path, and consumers need a stable major tag independent of Wright's release refs. This reverses the earlier non-goal in wrightkit/wright#717. It is recorded in README.md.

What is here

  • action.yml and scripts/setup-wright.sh: same contract as the reviewed feat(ci): add cached setup-wright Action wright#867 version. Exact cache key (no restore prefix), SHA-256 verified before save and use, corrupt cache never executed, no secrets or write token.
  • scripts/test-setup-wright.sh: the 22 helper tests plus one new test (see below).
  • CI: actionlint, shellcheck, helper tests, and a smoke job that uses uses: ./ on Linux, macOS and Windows with Wright 0.29.0. It installs twice, requires cache-hit == true on the second install (skipped on fork PRs), checks wright --version, and runs wright check.
  • Release: .github/workflows/release.yml uses release-please (the org's pattern for small repos, as in wrightkit/skills). Merging the Release PR creates vX.Y.Z; the same job then moves the major tag (v1). The tag move uses the built-in token, so there is no extra secret. No tag or release is created by this PR.
  • README.md, repo-local AGENTS.md, and a narrow CODEOWNERS.

Changes from wrightkit/wright#867

  • Paths and the script location moved to the repo root.
  • Review note 1 of feat(ci): add cached setup-wright Action wright#867 is fixed: the version check in verify-cache and install now matches the whole version, so 1.2.30 no longer passes for 1.2.3. The new test fails under the old substring check.
  • The smoke job pins an exact Wright version instead of latest, which also resolves review note 4.

Verification

  • Local: 23/23 helper tests pass; actionlint and shellcheck -S warning are clean.
  • CI in this PR verifies: helper tests, actionlint/shellcheck, the real consuming workflow on three OSes, a cache hit on the second run, and the installed version.

Not verified here

  • release.yml (release-please bootstrap with initial-version 1.0.0 and an empty manifest, and the major-tag move) can only be proven by a real release. Per release-engineering.md, the release topology is not established until one release completes.
  • Untrusted-PR cache isolation relies on GitHub cache scoping and is documented, not exercised.
  • Consuming the Action from a published @v1 ref waits for the first release.

Refs #3

Move the composite Action from wrightkit/wright into its own repository so consumers call wrightkit/setup-wright@v1 and get a major tag independent of Wright release refs. This reverses the earlier non-goal of a separate repository.

Behavior matches the reviewed in-repo version, except that the installed version check now matches the whole version rather than a substring, with a test.

Refs wrightkit/wright#717

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Teakowa
Teakowa merged commit a456d70 into main Oct 20, 2026
5 checks 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.

2 participants