Visitar URL original
build: add expected assets for v27.x (#4522) · nodejs/build@20a53e4 · GitHub
Skip to content

Commit 20a53e4

Browse files
authored
build: add expected assets for v27.x (#4522)
Based on v26.x, without the darwin-x64 tarballs that are no longer built from v27.x (see #4470 and nodejs/node#65427). Also test that Alpha versions, e.g. v27.0.0-alpha.0.0.0, are checked against the expected assets of their release line. Refs: nodejs/Release#1187 Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
1 parent 6d15dae commit 20a53e4

4 files changed

Lines changed: 153 additions & 0 deletions

File tree

‎ansible/www-standalone/tools/promote/check_assets.test.mjs‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,41 @@ const testcases = [
290290
]);
291291
}
292292
},
293+
{
294+
name: 'Alpha release, everything is in staging, nothing in dist, good to go',
295+
version: 'v27.0.0-alpha.0.0.0',
296+
expectedStdout:
297+
'... Checking assets\n' +
298+
'... Expecting a total of 39 assets for v27.x\n' +
299+
'... 39 assets waiting in staging\n' +
300+
'... 0 assets already promoted\n' +
301+
' \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Complete set of expected assets in place for v27.x\n',
302+
setup: async function setup (version, fixtureStagingDir, fixtureDistDir) {
303+
await makeFixture(version, true, fixtureStagingDir);
304+
}
305+
},
306+
{
307+
name: 'Alpha release, missing two assets in staging, nothing in dist',
308+
version: 'v27.0.0-alpha.1.2.3',
309+
expectedStdout:
310+
'... Checking assets\n' +
311+
'... Expecting a total of 39 assets for v27.x\n' +
312+
'... 37 assets waiting in staging\n' +
313+
'... 0 assets already promoted\n' +
314+
' \u001b[33m\u001b[1m⚠\u001b[22m\u001b[39m The following assets are expected for v27.x but are currently missing from staging:\n' +
315+
' • node-v27.0.0-alpha.1.2.3-linux-x64.tar.gz\n' +
316+
' • node-v27.0.0-alpha.1.2.3.pkg\n' +
317+
' \u001b[33mPromote if you are certain this is the the correct course of action\u001b[39m\n',
318+
setup: async function setup (version, fixtureStagingDir, fixtureDistDir) {
319+
await makeFixture(version, true, fixtureStagingDir);
320+
await Promise.all([
321+
rm(join(fixtureStagingDir, 'node-v27.0.0-alpha.1.2.3-linux-x64.tar.gz')),
322+
rm(join(fixtureStagingDir, 'node-v27.0.0-alpha.1.2.3-linux-x64.tar.gz.done')),
323+
rm(join(fixtureStagingDir, 'node-v27.0.0-alpha.1.2.3.pkg')),
324+
rm(join(fixtureStagingDir, 'node-v27.0.0-alpha.1.2.3.pkg.done'))
325+
]);
326+
}
327+
},
293328
];
294329

295330
describe(`${basename(import.meta.filename, '.test.mjs')} tests`, async () => {
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
docs/
2+
docs/apilinks.json
3+
docs/api/
4+
docs/llms.txt
5+
docs/node-config-schema.json
6+
node-{VERSION}-aix-ppc64.tar.gz
7+
node-{VERSION}-darwin-arm64.tar.gz
8+
node-{VERSION}-darwin-arm64.tar.xz
9+
node-{VERSION}-headers.tar.gz
10+
node-{VERSION}-headers.tar.xz
11+
node-{VERSION}-linux-arm64.tar.gz
12+
node-{VERSION}-linux-arm64.tar.xz
13+
node-{VERSION}-linux-ppc64le.tar.gz
14+
node-{VERSION}-linux-ppc64le.tar.xz
15+
node-{VERSION}-linux-s390x.tar.gz
16+
node-{VERSION}-linux-s390x.tar.xz
17+
node-{VERSION}-linux-x64.tar.gz
18+
node-{VERSION}-linux-x64.tar.xz
19+
node-{VERSION}-linux-x64-musl.tar.gz
20+
node-{VERSION}-linux-x64-musl.tar.xz
21+
node-{VERSION}.pkg
22+
node-{VERSION}.tar.gz
23+
node-{VERSION}.tar.xz
24+
node-{VERSION}-win-x64.7z
25+
node-{VERSION}-win-x64.zip
26+
node-{VERSION}-win-arm64.7z
27+
node-{VERSION}-win-arm64.zip
28+
node-{VERSION}-x64.msi
29+
node-{VERSION}-arm64.msi
30+
win-x64/
31+
win-x64/node.exe
32+
win-x64/node.lib
33+
win-x64/node_pdb.7z
34+
win-x64/node_pdb.zip
35+
win-arm64/
36+
win-arm64/node.exe
37+
win-arm64/node.lib
38+
win-arm64/node_pdb.7z
39+
win-arm64/node_pdb.zip

‎ansible/www-standalone/tools/promote/test/check_r2_assets.mjs‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,34 @@ const testcases = [
136136
context.rcloneLs[context.r2DistDir] = await fixture('unexpected-files.json');
137137
}
138138
},
139+
{
140+
name: 'Alpha release, everything is in staging, nothing in dist, good to go',
141+
version: 'v27.0.0-alpha.0.0.0',
142+
expectedStdout:
143+
'... Checking R2 assets\n' +
144+
'... Expecting a total of 39 assets for v27.x\n' +
145+
'... 39 assets waiting in R2 staging\n' +
146+
'... 0 assets already promoted in R2\n' +
147+
' \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Complete set of expected assets in place for v27.x\n',
148+
setup: async function setup (context) {
149+
context.rcloneLs[context.r2StagingDir] = await fixture('all-present-v27.0.0-alpha.0.0.0.json');
150+
}
151+
},
152+
{
153+
name: 'Alpha release, everything is in staging and everything in dist',
154+
version: 'v27.0.0-alpha.0.0.0',
155+
expectedStdout:
156+
'... Checking R2 assets\n' +
157+
'... Expecting a total of 39 assets for v27.x\n' +
158+
'... 39 assets waiting in R2 staging\n' +
159+
' \u001b[33m\u001b[1m⚠\u001b[22m\u001b[39m 39 assets already promoted in R2 will be overwritten, is this OK?\n' +
160+
' \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Complete set of expected assets in place for v27.x\n' +
161+
' \u001b[33mPromote if you are certain this is the the correct course of action\u001b[39m\n',
162+
setup: async function setup (context) {
163+
context.rcloneLs[context.r2StagingDir] = await fixture('all-present-v27.0.0-alpha.0.0.0.json');
164+
context.rcloneLs[context.r2DistDir] = await fixture('all-present-v27.0.0-alpha.0.0.0.json');
165+
}
166+
},
139167
];
140168

141169
async function fixture (name) {
@@ -234,6 +262,16 @@ describe(`${basename(import.meta.filename, '.mjs')} tests`, async () => {
234262
assert.strictEqual(exitFunc.mock.callCount(), 1);
235263
assert.strictEqual(context.stderr, expectedStderr);
236264
});
265+
it('Alpha staging and dist directories', async (context) => {
266+
captureConsole(context);
267+
const exitFunc = context.mock.fn();
268+
process.exit = exitFunc;
269+
await check_r2_assets.checkArgs([ process.execPath, 'check_r2_assets.mjs', 'v27.0.0-alpha.0.0.0', 'v27.0.0-alpha.0.0.0' ]);
270+
process.exit = exit;
271+
restoreConsole();
272+
assert.strictEqual(exitFunc.mock.callCount(), 0);
273+
assert.strictEqual(context.stderr, '');
274+
});
237275
for (const { name, version, expectedStdout, setup } of testcases) {
238276
it(name, async (context) => {
239277
context.version = version;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
[
2+
{"Path":"docs","Name":"docs","Size":0,"ModTime":"","IsDir":true},
3+
{"Path":"node-v27.0.0-alpha.0.0.0-aix-ppc64.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-aix-ppc64.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
4+
{"Path":"node-v27.0.0-alpha.0.0.0-arm64.msi","Name":"node-v27.0.0-alpha.0.0.0-arm64.msi","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
5+
{"Path":"node-v27.0.0-alpha.0.0.0-darwin-arm64.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-darwin-arm64.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
6+
{"Path":"node-v27.0.0-alpha.0.0.0-darwin-arm64.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-darwin-arm64.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
7+
{"Path":"node-v27.0.0-alpha.0.0.0-headers.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-headers.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
8+
{"Path":"node-v27.0.0-alpha.0.0.0-headers.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-headers.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
9+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-arm64.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-linux-arm64.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
10+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-arm64.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-linux-arm64.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
11+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-ppc64le.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-linux-ppc64le.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
12+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-ppc64le.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-linux-ppc64le.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
13+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-s390x.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-linux-s390x.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
14+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-s390x.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-linux-s390x.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
15+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-x64-musl.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-linux-x64-musl.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
16+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-x64-musl.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-linux-x64-musl.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
17+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-x64.tar.gz","Name":"node-v27.0.0-alpha.0.0.0-linux-x64.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
18+
{"Path":"node-v27.0.0-alpha.0.0.0-linux-x64.tar.xz","Name":"node-v27.0.0-alpha.0.0.0-linux-x64.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
19+
{"Path":"node-v27.0.0-alpha.0.0.0-win-arm64.7z","Name":"node-v27.0.0-alpha.0.0.0-win-arm64.7z","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
20+
{"Path":"node-v27.0.0-alpha.0.0.0-win-arm64.zip","Name":"node-v27.0.0-alpha.0.0.0-win-arm64.zip","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
21+
{"Path":"node-v27.0.0-alpha.0.0.0-win-x64.7z","Name":"node-v27.0.0-alpha.0.0.0-win-x64.7z","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
22+
{"Path":"node-v27.0.0-alpha.0.0.0-win-x64.zip","Name":"node-v27.0.0-alpha.0.0.0-win-x64.zip","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
23+
{"Path":"node-v27.0.0-alpha.0.0.0-x64.msi","Name":"node-v27.0.0-alpha.0.0.0-x64.msi","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
24+
{"Path":"node-v27.0.0-alpha.0.0.0.pkg","Name":"node-v27.0.0-alpha.0.0.0.pkg","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
25+
{"Path":"node-v27.0.0-alpha.0.0.0.tar.gz","Name":"node-v27.0.0-alpha.0.0.0.tar.gz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
26+
{"Path":"node-v27.0.0-alpha.0.0.0.tar.xz","Name":"node-v27.0.0-alpha.0.0.0.tar.xz","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
27+
{"Path":"win-arm64","Name":"win-arm64","Size":0,"ModTime":"","IsDir":true},
28+
{"Path":"win-x64","Name":"win-x64","Size":0,"ModTime":"","IsDir":true},
29+
{"Path":"docs/apilinks.json","Name":"apilinks.json","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
30+
{"Path":"docs/api","Name":"api","Size":0,"ModTime":"","IsDir":true},
31+
{"Path":"docs/llms.txt","Name":"llms.txt","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
32+
{"Path":"docs/node-config-schema.json","Name":"node-config-schema.json","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
33+
{"Path":"win-x64/node.exe","Name":"node.exe","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
34+
{"Path":"win-x64/node.lib","Name":"node.lib","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
35+
{"Path":"win-x64/node_pdb.7z","Name":"node_pdb.7z","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
36+
{"Path":"win-x64/node_pdb.zip","Name":"node_pdb.zip","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
37+
{"Path":"win-arm64/node.exe","Name":"node.exe","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
38+
{"Path":"win-arm64/node.lib","Name":"node.lib","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
39+
{"Path":"win-arm64/node_pdb.7z","Name":"node_pdb.7z","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"},
40+
{"Path":"win-arm64/node_pdb.zip","Name":"node_pdb.zip","Size":0,"ModTime":"","IsDir":false,"Tier":"STANDARD"}
41+
]

0 commit comments

Comments
 (0)