Skip to content

ci: fix CLI-from-git setup in test.yml (PER-9772)#39

Merged
pranavz28 merged 2 commits into
mainfrom
PER-9772_fix-cli-from-git-setup
Jul 3, 2026
Merged

ci: fix CLI-from-git setup in test.yml (PER-9772)#39
pranavz28 merged 2 commits into
mainfrom
PER-9772_fix-cli-from-git-setup

Conversation

@pranavz28

Copy link
Copy Markdown
Contributor

Problem

The Set up @percy/cli from git step (workflow_dispatch path, used by the percy/cli SDK regression) always fails:

  • After yarn remove @percy/cli, there is no local percy bin. yarn link symlinks packages but not their bins.
  • npx percy --version therefore misses locally and downloads the unrelated public percy@5.0.0 package, which prints "Heads up! It looks like @percy/cli is not installed!" and exits 1.

Failing job: https://github.com/percy/percy-selenium-ruby/actions/runs/28640547390/job/84935591907

Fix

Mirror the working percy-capybara pattern:

  • echo "$(yarn global bin)" >> "$GITHUB_PATH" after yarn global:link (+ export for the current step), so the freshly built percy resolves for this step and the subsequent npx percy exec test step.
  • Call percy --version directly instead of npx percy --version.
  • Make remove/link best-effort (|| true), same as other SDKs.
  • Route the branch input through env: instead of inline ${{ }} interpolation in run: (workflow-injection hygiene; the input is also regex-validated upstream).

🤖 Generated with Claude Code

'npx percy --version' after 'yarn remove @percy/cli' resolved nothing
locally, so npx downloaded the unrelated public 'percy' package and the
step failed. Mirror percy-capybara: expose $(yarn global bin) on PATH
after 'yarn global:link' and call 'percy' directly. Also route the
branch input through env instead of inline interpolation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Newer selenium-webdriver (deps are unlocked, no Gemfile.lock) logs a
[DEPRECATION] [:browser_options] warning to stdout on first driver
init, via Capybara's built-in :selenium_headless registration. The
suite asserts exact stdout with output(...).to_stdout, so whichever
example first boots the driver inside such a block fails, seed-
dependently (percy_spec.rb:110 in CI run 28640844709). Ignore just
that deprecation id, guarded for loggers without #ignore.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pranavz28 pranavz28 merged commit 52e81e3 into main Jul 3, 2026
8 checks passed
@pranavz28 pranavz28 deleted the PER-9772_fix-cli-from-git-setup branch July 3, 2026 07:59
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