Skip to content

Commit 17191f8

Browse files
authored
doc: add more stuff to release overview (#3386)
Add failover www server and unofficial-build servers. Add relationships for Cloudflare CDN. Use appropriate symbols for manual processes and storage. Refs: #3377 (comment)
1 parent 9c6a6af commit 17191f8

File tree

1 file changed

+63
-16
lines changed

1 file changed

+63
-16
lines changed

doc/release-overview.md

Lines changed: 63 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
# Overview of release process and infrastructure for Node.js
22

3-
This is an overview of how the release process for Node.js works and how it interacts with Build WG infrastructure.
3+
This is an overview of infrastructure owned/managed by the Build WG and how it interacts with Node.js' [release process][].
4+
45
Clicking on most labels will take you to the relevant area of the build repository or other repository owned by the Node.js organization.
56

67
```mermaid
78
flowchart TD
8-
subgraph user[Releaser]
9+
subgraph releaser[Releaser]
910
start([<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md'>Start</a>])
10-
prepareRelease(<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#7-ensure-that-the-release-branch-is-stable'>Prepare the release</a>)
11-
startTestBuilds(<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#7-ensure-that-the-release-branch-is-stable'>Start test builds</a>)
11+
prepareRelease[/<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#7-ensure-that-the-release-branch-is-stable'>Prepare the release</a>\]
12+
startTestBuilds[/<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#7-ensure-that-the-release-branch-is-stable'>Start test builds</a>\]
1213
readyToRelease{Ready for release?}
1314
14-
startReleaseBuilds(<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#9-produce-release-builds'>Start release build</a>)
15-
promote(<a href='https://github.com/nodejs/node/blob/main/tools/release.sh'>Promote</a>)
16-
blog(<a href='https://github.com/nodejs/nodejs.org/blob/main/scripts/release-post/index.mjs'>Create blog post</a>)
15+
startReleaseBuilds[/<a href='https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#9-produce-release-builds'>Start release build</a>\]
16+
promote[/<a href='https://github.com/nodejs/node/blob/main/tools/release.sh'>Promote</a>\]
17+
blog[/<a href='https://github.com/nodejs/nodejs.org/blob/main/scripts/release-post/index.mjs'>Create blog post</a>\]
1718
done([End])
1819
1920
start-->prepareRelease-->startTestBuilds-->readyToRelease
2021
readyToRelease--No-->prepareRelease
2122
readyToRelease--Yes-->startReleaseBuilds-->promote-->blog-->done
2223
end
2324
subgraph github[GitHub]
24-
ghCode[<a href='https://github.com/nodejs/node'>nodejs/node</a>]
25-
ghWebsite[<a href='https://github.com/nodejs/nodejs.org'>nodejs/nodejs.org</a>]
25+
ghCode[(<a href='https://github.com/nodejs/node'>nodejs/node</a>)]
26+
ghWebsite[(<a href='https://github.com/nodejs/nodejs.org'>nodejs/nodejs.org</a>)]
27+
ghUnofficial[(<a href='https://github.com/nodejs/unofficial-builds'>nodejs/unofficial-builds</a>)]
2628
27-
%% This invisible link is to aid the layout of the flowchart, stacking the two repositories vertically
28-
ghCode ~~~ ghWebsite
29+
%% This invisible link is to aid the layout of the flowchart, stacking the repositories vertically
30+
ghCode ~~~ ghWebsite ~~~ ghUnofficial
2931
end
3032
subgraph buildInfra[Infrastructure owned by Build WG]
3133
subgraph ci[Test CI]
@@ -34,16 +36,21 @@ flowchart TD
3436
subgraph ci-release[Release CI]
3537
releaseBuilds(<a href='https://ci-release.nodejs.org/job/iojs+release/'>Release builds</a>)
3638
end
37-
subgraph www[www server]
39+
subgraph wwwServer[<a href='https://github.com/nodejs/build/tree/main/ansible/www-standalone'>www server</a>]
3840
staging[(staging)]
3941
promotion(<a href='https://github.com/nodejs/build/tree/main/ansible/www-standalone/tools/promote'>Promotion</a>)
4042
dist[(dist)]
4143
rebuildIdx(<a href='https://github.com/nodejs/nodejs-dist-indexer'>Rebuild index</a>)
4244
rebuildWebsite(<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/build-site.sh'>Rebuild website</a>)
45+
www[(www)]
4346
queueCDN[<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/queue-cdn-purge.sh'>Queue CDN purge</a>]
4447
webhook(<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/config/github-webhook.json.j2'>Webhook</a>)
48+
subgraph nightlyCron[<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/tasks/tools.yaml'>nightly cron</a>]
49+
nightlyBuilder[[<a href='https://github.com/nodejs/nodejs-nightly-builder'>nodejs-nightly-builder</a>]]
50+
end
4551
4652
staging-->promotion-->dist-->rebuildIdx
53+
nightlyBuilder-.->releaseBuilds
4754
4855
subgraph chkIndex[Check index]
4956
idxChanged{<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/check-build-site.sh'>Index Changed?</a>}
@@ -54,7 +61,7 @@ flowchart TD
5461
rebuildIdx-.->idxChanged
5562
webhook-->rebuildWebsite
5663
idxChanged--Yes-->rebuildWebsite
57-
rebuildWebsite-->queueCDN-.->purgeQueued
64+
rebuildWebsite-->www-->queueCDN-.->purgeQueued
5865
5966
subgraph cdn[CDN purge queue]
6067
purgeQueued{<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/cdn-purge.sh.j2'>CDN purge queued?</a>}
@@ -64,6 +71,35 @@ flowchart TD
6471
purgeQueued--Yes-->purge
6572
end
6673
end
74+
subgraph unofficial[<a href='https://github.com/nodejs/build/tree/main/ansible/roles/unofficial-builds'>Unofficial builds server</a>]
75+
subgraph unofficialPeriodicTimer[<a href='https://github.com/nodejs/build/blob/main/ansible/roles/unofficial-builds/files/nodejs-periodic.timer'>nodejs-periodic.timer</a>]
76+
subgraph unofficialPeriodicService[<a href='https://github.com/nodejs/build/blob/main/ansible/roles/unofficial-builds/files/nodejs-periodic.service'>nodejs-periodic.service</a>]
77+
unofficialPeriodicSh[[<a href='https://github.com/nodejs/unofficial-builds/blob/main/bin/periodic.sh'>periodic.sh</a>]]
78+
unofficialBuildIfQueued[[<a href='https://github.com/nodejs/unofficial-builds/blob/main/bin/build-if-queued.sh'>build-if-queued.sh</a>]]
79+
end
80+
end
81+
unofficialManualQueue[/<a href='https://github.com/nodejs/unofficial-builds#manual-build-triggers'>Manually queue build</a>\]
82+
unofficialQueueBuild[<a href='https://github.com/nodejs/unofficial-builds/blob/main/bin/queue-push.sh'>Queue build</a>]
83+
unofficialDownloads[(download)]
84+
unofficialWebhook[<a href='https://github.com/nodejs/build/blob/main/ansible/roles/unofficial-builds/files/unofficial-builds-deploy-webhook.service'>Webhook</a>]
85+
unofficialDeploy[<a href='https://github.com/nodejs/build/blob/main/ansible/roles/unofficial-builds/files/deploy-unofficial-builds.sh'>Deploy recipes]
86+
unofficialRecipes[(Recipe containers)]
87+
88+
ghUnofficial-.->|Pull request merged|unofficialWebhook-->unofficialDeploy-->unofficialRecipes
89+
unofficialPeriodicSh-->unofficialBuildIfQueued-->unofficialDownloads
90+
unofficialPeriodicSh-->unofficialQueueBuild-->unofficialBuildIfQueued
91+
unofficialManualQueue-->unofficialQueueBuild
92+
end
93+
subgraph unencrypted[www failover server]
94+
unencryptedRsync[[rsyncmirror.service]]
95+
unencryptedDist[(dist mirror)]
96+
unencryptedWww[(www mirror)]
97+
98+
dist-->unencryptedRsync
99+
www-->unencryptedRsync
100+
unencryptedRsync-->unencryptedDist
101+
unencryptedRsync-->unencryptedWww
102+
end
67103
end
68104
prepareRelease-->|Open/update pull request|ghCode
69105
startTestBuilds-->testBuilds
@@ -72,8 +108,19 @@ flowchart TD
72108
promote-->promotion
73109
blog-->|Open pull request|ghWebsite
74110
releaseBuilds-->staging
75-
purge-->cloudflare
111+
subgraph cloudflare[Cloudflare]
112+
cloudflareCDN[(CDN)]
113+
end
114+
purge-->cloudflareCDN
115+
dist-.->cloudflareCDN
116+
www-.->cloudflareCDN
117+
unencryptedDist-.->cloudflareCDN
118+
unencryptedWww-.->cloudflareCDN
76119
77-
%% This invisible link is to aid the layout of the flowchart, stacking the "Test CI" subgraph above the "Release CI" subgraph
78-
ci ~~~ ci-release
120+
%% Invisible links to aid the layout of the flowchart, vertically stacking some subgraphs
121+
ci ~~~ ci-release ~~~ unofficial
122+
unofficial ~~~ unencrypted
123+
buildInfra ~~~ cloudflare
79124
```
125+
126+
[release process]: https://github.com/nodejs/node/blob/main/doc/contributing/releases.md

0 commit comments

Comments
 (0)