Skip to content

Desktop E2E has never run: paths filter points at nclaw/desktop/** which does not exist #50

Description

@acamarata

The Desktop E2E suite has never run. Not once.

.github/workflows/desktop-e2e.yml is gated on:

on:
  pull_request:
    paths: ['nclaw/desktop/**']
  push:
    branches: [main]
    paths: ['nclaw/desktop/**']

nclaw/desktop/ does not exist in this repository. The directory is desktop/. The nclaw/ prefix looks like a leftover from a monorepo-relative path that no longer applies.

A path filter that matches nothing means the workflow can never trigger. Confirmed against the run history: the only run that has ever existed is the one accidentally triggered by #49, which added the workflow to its own paths: list.

So this is not a flaky suite or a slow suite. It is a suite that has produced zero signal for its entire lifetime, while appearing in the workflow list as though it were protecting the desktop app.

And it is red

That single accidental run failed immediately:

Job Result Failing step
e2e (windows-latest) failure Install deps
e2e (macos-latest) failure Install deps
e2e (ubuntu-latest) queued

It does not get as far as running a test. Whatever Install deps needs has drifted since the suite was written, which is unsurprising for something that has never executed.

Why this was not fixed in #49

Correcting the path to desktop/** is the obvious one-line fix, and it is deliberately not included in #49.

Doing so would make a known-broken suite start running on every desktop change and turn main red immediately. That trades an invisible problem for a loud one before anyone has decided to fix the suite itself. Turning someone else's main red as a side effect of a workflow-hygiene sweep is not an acceptable trade.

#49 only makes the workflow trigger on edits to itself, which is what surfaced this.

Suggested order

  1. Fix Install deps until the suite is green when run manually via workflow_dispatch.
  2. Then correct the filter to desktop/** so it guards real desktop changes.
  3. Consider making it a required status check on main once it is trustworthy.

Doing 2 before 1 just moves the breakage somewhere more annoying.

Context

Found during an org-wide sweep for gates whose success condition is unreachable or trivially satisfiable. Related instances: a required status check named nself-ci that no workflow produced (blocking every PR in 4 repos, later found in 3 more), a postgres readiness check satisfied by the temporary initdb server, a quarterly cron firing ~10x per quarter, and nself-org/cli#268 / nself-org/cli#270.

This one is the most complete version of the pattern: not hard to satisfy, but impossible.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions