Skip to content

fix(release): isolate gray CDN artifacts - #1882

Merged
openai0229 merged 2 commits into
mainfrom
fix/1881-gray-cdn-namespace
Jul 21, 2026
Merged

fix(release): isolate gray CDN artifacts#1882
openai0229 merged 2 commits into
mainfrom
fix/1881-gray-cdn-namespace

Conversation

@openai0229

@openai0229 openai0229 commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Related issue

Closes #1881

Summary

Manual gray builds previously uploaded to the same CDN keys as formal tag releases, so a same-version gray rerun could replace formal installers, updater payloads, checksums, and the release manifest.

This change keeps the existing formal paths for compatibility and routes each gray run to community/gray/<version>/<run-id>/, with updater payloads under that run's updates/ directory. Manifest URLs, updater metadata, OSS destinations, package notifications, and summary links all consume the resolved prefixes. Gray runs skip CDN refresh because their URLs are unique; release runs retain stable-path refresh and latest promotion. All workflow notification and failure-summary text is now English.

Affected surfaces

  • Frontend / Web
  • Backend / API / Storage
  • Database plugin / Driver
  • JCEF / Desktop packaging
  • CI / Build / Release
  • Documentation only

Verification

  • Commands and results: Ruby YAML parsing passed; Actionlint 1.7.12 with ShellCheck 0.11.0 passed; git diff --check passed; the workflow has no Chinese-character matches; all three embedded notification Python blocks compile; the extracted bundle-validation step passed gray and release fixtures containing all nine installers.
  • Manual verification: Gray run 29799707300 uploaded to the scoped prefix, then failed only because the initial implementation still requested an unnecessary Aliyun cache refresh and the credential returned Forbidden.RAM. Follow-up run 29800935405 passed all five platform builds, both macOS notarizations, CDN publication, and the English summary; Refresh Community CDN cache, GitHub Release, and Docker were skipped as designed. The manifest reports channel: gray, nine package URLs under community/gray/5.3.0/29800935405/, and three updater payload URLs under its nested updates/ directory. All nine installers, SHA256SUMS, release-manifest.json, and four updater objects return HTTP 200. Formal manifest, updater metadata, latest pointer, and MSI object metadata remained unchanged from the pre-run baseline.
  • UI evidence: N/A; this PR changes release automation and notification text, not application UI.

Risk and compatibility

  • Public API or stored data: N/A; no application API or stored-data schema changes.
  • Database or driver compatibility: N/A; no database or driver changes.
  • Network, privacy, or security: Uses the existing OSS/CDN credentials and endpoints. Gray no longer calls the Aliyun cache-refresh API; release behavior is unchanged.
  • Community / Local / Pro boundary: Community release workflow only; Local and Pro packaging are unchanged.
  • Backward compatibility: Formal package and updater URLs remain unchanged. Gray URLs intentionally become run-scoped and must be consumed from the workflow summary or manifest.

Reviewer map

  • Start here: .github/workflows/jcef_release.yml, especially Resolve release metadata, manifest generation, OSS destinations, and the release-only refresh condition.
  • Failure condition: A gray manifest or updater URL escapes community/gray/<version>/<run-id>/, a gray run mutates formal or latest objects, or a tag release stops using the existing formal paths and refresh behavior.
  • Rollback or disable path: Revert commits c65b4e68d and 2414f44e. Until fixed, avoid dispatching gray builds for versions that already have a formal release.

Contributor declaration

  • I linked the Issue that defines this change.
  • I tested the affected behavior and reported the actual results above.
  • I did not include credentials, private data, or generated build output.
  • I disclosed substantial AI assistance below, or this PR contains no substantial AI-generated code.

AI assistance: Substantial AI assistance was used to inspect the workflow, implement the scoped-prefix change, update notification text, and prepare verification. The resulting changes were validated with the commands and live workflow runs listed above.

@openai0229
openai0229 merged commit 27b573b into main Jul 21, 2026
21 checks passed
@openai0229
openai0229 deleted the fix/1881-gray-cdn-namespace branch August 5, 2026 03:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gray Community builds overwrite formal CDN artifacts

1 participant