MarshallOfSound

#53451: ci: use a download-artifact fork that doesn't parse the event file at import

Merged
Created: Sep 3, 2026, 3:26:14 AM
Merged: Sep 3, 2026, 12:08:35 PM
5 comments
Target: main

Description of Change

The two download-artifact steps in the test job's parallel: setup group have failed main four times since mid-August (08-18, 08-20, 08-27, 09-01) with

SyntaxError: Expected double-quoted property name in JSON at position 8192
    at new Context (.../download-artifact/dist/index.js)

before downloading anything. Cause: actions/runner rewrites $GITHUB_EVENT_PATH at the start of every step (ExecutionContext.WriteWebhookPayload), and @actions/github's Context constructor — which runs at import in any action that depends on it, download-artifact included via @actions/artifact — reads and parses that file eagerly. Inside a parallel group a sibling step starting at the wrong moment hands it a half-written file. Sequential steps never hit this, which is why it only appeared once the group was introduced.

This points those two steps at a fork of download-artifact v8.0.1 whose only change is to read the payload lazily (with a short retry on a parse error). download-artifact never reads the payload — run id and repo come from inputs/env — so in practice the file is no longer touched at all. The steps stay parallel; everything else about the action (retries, digest verification) is unchanged. The runner-side fix is filed separately; once a runner release stops rewriting the file per step this can go back to upstream.

Checklist

Release Notes

Notes: none

Backports

43-x-y
Merged
PR Number
#53467
Merged At
Sep 3, 2026, 5:08:32 PM
Released In
v43.6.0
Release Date
Sep 3, 2026, 7:24:06 PM
44-x-y
Merged
PR Number
#53468
Merged At
Sep 3, 2026, 1:47:24 PM
Released In
v44.2.0
Release Date
Sep 3, 2026, 7:23:56 PM
45-x-y
Merged
PR Number
#53466
Merged At
Sep 3, 2026, 1:33:10 PM
Released In
v45.0.0-alpha.4
Release Date
Sep 3, 2026, 3:00:16 PM

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron