The publish-npm step ended with `|| echo "[publish] Some packages may already exist at this version — continuing"`, which unconditionally converted any failure into success. That fallback silently masked a real Gitea registry 404 during the @mosaic/* → @mosaicstack/* org rename — CI reported green for pipelines #681 and #684 while every single @mosaicstack/* publish fell on the floor, blocking users from installing the gateway. Replace the blanket swallow with a targeted rule: - `E404 / E401 / ENEEDAUTH / ECONNREFUSED / ETIMEDOUT / ENOTFOUND` → FATAL, fail the pipeline. These are real registry/auth/network problems that must surface. - `EPUBLISHCONFLICT / cannot publish over / previously published` → tolerate. This is the legitimate "only some packages were bumped in this merge" case and should not block CI. - Any other unrecognized failure → FATAL (fail closed, not open). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.3 KiB
5.3 KiB