Skip to content

Commit e96c917

Browse files
authored
doc: add overview for release process (#3377)
Add a clickable diagram that outlines the release process and infrastructure for Node.js.
1 parent 4c23513 commit e96c917

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

doc/release-overview.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Overview of release process and infrastructure for Node.js
2+
3+
This is an overview of how the release process for Node.js works and how it interacts with Build WG infrastructure.
4+
Clicking on most labels will take you to the relevant area of the build repository or other repository owned by the Node.js organization.
5+
6+
```mermaid
7+
flowchart TD
8+
subgraph user[Releaser]
9+
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>)
12+
readyToRelease{Ready for release?}
13+
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>)
17+
done([End])
18+
19+
start-->prepareRelease-->startTestBuilds-->readyToRelease
20+
readyToRelease--No-->prepareRelease
21+
readyToRelease--Yes-->startReleaseBuilds-->promote-->blog-->done
22+
end
23+
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>]
26+
27+
%% This invisible link is to aid the layout of the flowchart, stacking the two repositories vertically
28+
ghCode ~~~ ghWebsite
29+
end
30+
subgraph buildInfra[Infrastructure owned by Build WG]
31+
subgraph ci[Test CI]
32+
testBuilds(<a href='https://ci.nodejs.org/job/node-test-pull-request/'>Test builds</a>)
33+
end
34+
subgraph ci-release[Release CI]
35+
releaseBuilds(<a href='https://ci-release.nodejs.org/job/iojs+release/'>Release builds</a>)
36+
end
37+
subgraph www[www server]
38+
staging[(staging)]
39+
promotion(<a href='https://github.com/nodejs/build/tree/main/ansible/www-standalone/tools/promote'>Promotion</a>)
40+
dist[(dist)]
41+
rebuildIdx(<a href='https://github.com/nodejs/nodejs-dist-indexer'>Rebuild index</a>)
42+
rebuildWebsite(<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/build-site.sh'>Rebuild website</a>)
43+
queueCDN[<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/queue-cdn-purge.sh'>Queue CDN purge</a>]
44+
webhook(<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/config/github-webhook.json.j2'>Webhook</a>)
45+
46+
staging-->promotion-->dist-->rebuildIdx
47+
48+
subgraph chkIndex[Check index]
49+
idxChanged{<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/check-build-site.sh'>Index Changed?</a>}
50+
51+
idxChanged--No-->idxChanged
52+
end
53+
54+
rebuildIdx-.->idxChanged
55+
webhook-->rebuildWebsite
56+
idxChanged--Yes-->rebuildWebsite
57+
rebuildWebsite-->queueCDN-.->purgeQueued
58+
59+
subgraph cdn[CDN purge queue]
60+
purgeQueued{<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/cdn-purge.sh.j2'>CDN purge queued?</a>}
61+
purge(<a href='https://github.com/nodejs/build/blob/main/ansible/www-standalone/resources/scripts/cdn-purge.sh.j2'>CDN purge</a>)
62+
63+
purgeQueued--No-->purgeQueued
64+
purgeQueued--Yes-->purge
65+
end
66+
end
67+
end
68+
prepareRelease-->|Open/update pull request|ghCode
69+
startTestBuilds-->testBuilds
70+
startReleaseBuilds-->releaseBuilds
71+
ghWebsite-.->|Pull request merged|webhook
72+
promote-->promotion
73+
blog-->|Open pull request|ghWebsite
74+
releaseBuilds-->staging
75+
purge-->cloudflare
76+
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
79+
```

0 commit comments

Comments
 (0)