diff --git a/doc/release-overview.md b/doc/release-overview.md
index 76ddcac6a..f8b5e31f7 100644
--- a/doc/release-overview.md
+++ b/doc/release-overview.md
@@ -8,28 +8,28 @@ Clicking on most labels will take you to the relevant area of the build reposito
flowchart TD
subgraph releaser[Releaser]
start([Start])
- prepareRelease[/Prepare the release\]
- startTestBuilds[/Start test builds\]
+ prepareRelease[\Prepare the release/]
+ startTestBuilds[\Start test builds/]
readyToRelease{Ready for release?}
- startReleaseBuilds[/Start release build\]
- promote[/Promote\]
- blog[/Create blog post\]
+ startReleaseBuilds[\Start release build/]
+ promote[\Promote/]
+ blog[\Create blog post/]
done([End])
start-->prepareRelease-->startTestBuilds-->readyToRelease
- readyToRelease--No-->prepareRelease
- readyToRelease--Yes-->startReleaseBuilds-->promote-->blog-->done
+ readyToRelease-->|No|prepareRelease
+ readyToRelease-->|Yes|startReleaseBuilds-->promote-->blog-->done
end
subgraph github[GitHub]
ghCode[(nodejs/node)]
ghWebsite[(nodejs/nodejs.org)]
- ghUnofficial[(nodejs/unofficial-builds)]
+ ghCFWorker[(nodejs/release-cloudflare-worker)]
%% This invisible link is to aid the layout of the flowchart, stacking the repositories vertically
- ghCode ~~~ ghWebsite ~~~ ghUnofficial
+ ghCode ~~~ ghWebsite ~~~ ghCFWorker
end
- subgraph buildInfra[Infrastructure owned by Build WG]
+ subgraph buildInfra[Build WG Infrastructure]
subgraph ci[Test CI]
testBuilds(Test builds)
end
@@ -38,89 +38,83 @@ flowchart TD
end
subgraph wwwServer[www server]
staging[(staging)]
- promotion(Promotion)
dist[(dist)]
- rebuildIdx(Rebuild index)
- rebuildWebsite(Rebuild website)
- www[(www)]
- queueCDN[Queue CDN purge]
- webhook(Webhook)
+ subgraph promotion[Promotion]
+ subgraph nightlyPromoteCron[nightly promote cron]
+ promoteNightly[[Promote nightly]]
+ end
+ promoteRelease(Promote release)
+ promoteCommon(Promote)
+ resha(_resha)
+ uploadToCloudflare(upload_to_cloudflare.sh)
+ rebuildIdx(Rebuild index)
+ queueCDN[Queue CDN purge]
+ end
+
subgraph nightlyCron[nightly cron]
nightlyBuilder[[nodejs-nightly-builder]]
end
- staging-->promotion-->dist-->rebuildIdx
+ staging-->promoteCommon-->dist
+ promoteNightly-.->promoteCommon
+ promoteRelease-->promoteCommon
+ promoteCommon-->resha-->rebuildIdx
+ promoteCommon-->uploadToCloudflare
nightlyBuilder-.->releaseBuilds
+ rebuildIdx-->queueCDN
+ rebuildIdx-->dist
- subgraph chkIndex[Check index]
- idxChanged{Index Changed?}
-
- idxChanged--No-->idxChanged
- end
-
- rebuildIdx-.->idxChanged
- webhook-->rebuildWebsite
- idxChanged--Yes-->rebuildWebsite
- rebuildWebsite-->www-->queueCDN-.->purgeQueued
-
- subgraph cdn[CDN purge queue]
+ subgraph cdn[CDN purge queue]
purgeQueued{CDN purge queued?}
purge(CDN purge)
- purgeQueued--No-->purgeQueued
- purgeQueued--Yes-->purge
- end
- end
- subgraph unofficial[Unofficial builds server]
- subgraph unofficialPeriodicTimer[nodejs-periodic.timer]
- subgraph unofficialPeriodicService[nodejs-periodic.service]
- unofficialPeriodicSh[[periodic.sh]]
- unofficialBuildIfQueued[[build-if-queued.sh]]
- end
+ purgeQueued-->|No|purgeQueued
+ purgeQueued-->|Yes|purge
end
- unofficialManualQueue[/Manually queue build\]
- unofficialQueueBuild[Queue build]
- unofficialDownloads[(download)]
- unofficialWebhook[Webhook]
- unofficialDeploy[Deploy recipes]
- unofficialRecipes[(Recipe containers)]
-
- ghUnofficial-.->|Pull request merged|unofficialWebhook-->unofficialDeploy-->unofficialRecipes
- unofficialPeriodicSh-->unofficialBuildIfQueued-->unofficialDownloads
- unofficialPeriodicSh-->unofficialQueueBuild-->unofficialBuildIfQueued
- unofficialManualQueue-->unofficialQueueBuild
end
subgraph unencrypted[www failover server]
unencryptedRsync[[rsyncmirror.service]]
unencryptedDist[(dist mirror)]
- unencryptedWww[(www mirror)]
dist-->unencryptedRsync
- www-->unencryptedRsync
unencryptedRsync-->unencryptedDist
- unencryptedRsync-->unencryptedWww
end
end
prepareRelease-->|Open/update pull request|ghCode
startTestBuilds-->testBuilds
startReleaseBuilds-->releaseBuilds
- ghWebsite-.->|Pull request merged|webhook
- promote-->promotion
+ ghCode-->testBuilds
+ ghCode-->releaseBuilds
+ ghWebsite-->|Pull request merged|Vercel
+ promote-->promoteRelease
blog-->|Open pull request|ghWebsite
- releaseBuilds-->staging
+ releaseBuilds-->|upload via Makefile/vcbuild.bat|staging
+ staging-->|upload via Makefile/vcbuild.bat|r2Staging
+ subgraph vercel[Vercel]
+ Vercel[(Vercel)]
+ end
subgraph cloudflare[Cloudflare]
+ website[[https://nodejs.org/]]
cloudflareCDN[(CDN)]
+ cloudflareWorker[[Worker]]
+ r2Staging[(R2 Staging)]
+ r2Dist[(R2 Production)]
end
purge-->cloudflareCDN
- dist-.->cloudflareCDN
- www-.->cloudflareCDN
- unencryptedDist-.->cloudflareCDN
- unencryptedWww-.->cloudflareCDN
+ dist-.->|old route/failover|cloudflareCDN
+ unencryptedDist-.->|old route/failover|cloudflareCDN
+ r2Staging-->uploadToCloudflare-->r2Dist
+ rebuildIdx-->r2Staging
+ ghCFWorker-->cloudflareWorker
+ r2Dist-->cloudflareWorker
+ Vercel-->|non-downloads/API docs|website
+ cloudflareWorker-->cloudflareCDN-->|downloads/API docs|website
%% Invisible links to aid the layout of the flowchart, vertically stacking some subgraphs
- ci ~~~ ci-release ~~~ unofficial
- unofficial ~~~ unencrypted
- buildInfra ~~~ cloudflare
+ ci ~~~ ci-release
+ releaser ~~~ github ~~~ vercel
+ promotion ~~~ cdn
+ r2Staging ~~~ website
```
[release process]: https://github.com/nodejs/node/blob/main/doc/contributing/releases.md