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