percy / cli

The Percy CLI is used to interact with, and upload snapshots to, percy.io via the command line.
https://docs.percy.io/docs/cli-overview
70 stars 43 forks source link

Percy Build Wait command exiting immediately on changes. #1655

Open Kaedeko opened 2 months ago

Kaedeko commented 2 months ago

The problem

When using --fail-on-changes and --pass-if-approved, the documented behaviour looks like it should be polling the build until it's approved, up until the timeout value, default 10 minutes.

What I'm seeing locally and in pipeline is the command exiting immediately after a build is completed.

e.g.

npx percy build:wait --fail-on-changes --pass-if-approved -b <build-id> -t 900000 -i 10000
[percy] Build #1013 finished! <url removed>
[percy] Found 1 changes

Script then exits. Happens with all our builds. If there's an issue with how i'm using the script then it might be more of a documentation issue than anything else but it certainly feels like a bug.

Effectively, wait isn't waiting.

Environment

Debug logs

npx percy build:wait --fail-on-changes --pass-if-approved -b 35202590 -t 900000 -i 10000 -v
[percy:config] Found config file: .percy.yml (0ms)
[percy:config] Using config:
{
  version: 2,
  snapshot: {
    widths: [
      1920
    ],
    minHeight: 1280,
    percyCSS: '',
    enableJavaScript: false,
    cliEnableJavaScript: true,
    disableShadowDOM: false
  },
  discovery: {
    networkIdleTimeout: 100
  },
  upload: {
    files: '**/*.{png,jpg,jpeg}',
    ignore: '',
    stripExtensions: false
  }
} (9ms)
[percy:env] Detected ci as null (9ms)
[percy:env] Detected commit as null (0ms)
[percy:env] Detected branch as null (0ms)
[percy:env] Detected git as <Removed Commit Information> (59ms)
[percy:client] Waiting for build 35202590... (27ms)
[percy:client] Get build 35202590 (0ms)
[percy:env] Detected info as null (0ms)
[percy:cli:build:wait] Build #1013 finished! https://percy.io/0599cc3c/Ziggy/builds/35202590 (470ms)
[percy:cli:build:wait] Found 1 changes (0ms)

Code to reproduce issue

N/A - Provided above.

github-actions[bot] commented 2 months ago

This issue is stale because it has been open for more than 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.

Kaedeko commented 2 months ago

Still an ongoing issue.

ninadbstack commented 1 month ago

@Kaedeko the feature is working as expected, its currently pass-if-approved and not pass until approved - with some timeout. pass-if-approved usually means no differences or auto approved due to some other reason like carry forwarded snapshots or auto approve branch etc

You can easily add a bash loop if you want to wait till build is approved manually on dashboard.

If you need this as a feature - with a flag like --wait-for-approval with a timeout - please raise the same via support and product managers could look into it