Skip to content

ci: Cygwin provisioning fails before Windows shim tests run #10025

Description

@reggi

Summary

The release/v11 Windows Shims Tests job fails during Cygwin provisioning, before the shim tests execute. The setup action attempts a Chocolatey downgrade that conflicts with an installed runner package, continues, and then receives exit code 1 from the Cygwin installer.

This issue tracks the provisioning incident, including both observed failures. The available logs do not prove that the failed downgrade caused the Cygwin installer failure. Keep that causal uncertainty explicit rather than treating adjacent errors as a proven chain.

Affected run

Branch: release/v11, commit d12b9434dd010b5fb7044c3cc149cdda317813f8, npm 11.20.0.

Workflow: https://github.com/npm/cli/actions/runs/35787154762

Failing job: Windows Shims Tests

Failing step: Setup Cygwin, using egor-tensin/setup-cygwin@v4.0.1.

The other 16 jobs in this CI run passed.

Evidence

The action attempts to downgrade Chocolatey 2.7.4 to 1.1.0:

Unable to resolve dependency 'chocolatey': Unable to resolve dependencies.
'chocolatey 1.1.0' is not compatible with
'apache-httpd 2.4.55 constraint: chocolatey (>= 1.2.0)'.

The action continues using Chocolatey 2.7.4, installs the Cygwin 3.6.10 package files, and runs its setup executable. That operation fails:

Installing 64-bit Cygwin...
ERROR: Running [...] was not successful. Exit code was '1'.
See log for possible error messages.
The upgrade of Cygwin was NOT successful.

The installer invocation selects http://mirrors.kernel.org/sourceware/cygwin/. The workflow log names the mirror but does not establish that it was unavailable.

The action's downgrade workaround references chocolatey/choco#2953. The recorded action source and the v11 workflow identify the provisioning path.

Root-cause status

Confirmed: the bootstrap's requested Chocolatey downgrade is incompatible with an installed runner dependency, and the subsequent Cygwin installation fails. The Windows shim assertions never execute.

Unresolved: why setup-x86_64.exe exits 1 and whether the downgrade failure contributes. The referenced Chocolatey and Cygwin setup logs are not included in the captured job output. Cache-service warnings elsewhere in the job are not sufficient evidence of the cause.

Proposed resolution

  • Capture the Chocolatey and Cygwin installer logs when provisioning fails, including runner image and package versions.
  • Update or replace the obsolete provisioning path after reviewing compatibility with current Windows runner images.
  • Stop and report failed prerequisite commands rather than silently continuing after a downgrade failure.
  • Preserve Cygwin coverage of the Windows shims rather than disabling the job.

If installer diagnostics establish a second independent cause, split that cause with evidence instead of filing separate tickets merely for each error line.

Acceptance criteria

  • Cygwin provisions on the supported runner image and the Windows shim tests actually run.
  • Provisioning failures expose the installer diagnostics needed to distinguish dependency, download, and installation failures.
  • Any workflow changes also update the generating template and are assessed for both release branches.

Scope boundary

This is a runner-provisioning failure, not evidence of an npm shim regression. It is separate from #10016, #10020, the npm 12 integration policy failures, and the latest live-registry smoke-test reset.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions