@@ -3,22 +3,64 @@ const path = require('path')
3
3
4
4
const { createClient } = require ( '@vercel/kv' )
5
5
6
- async function main ( ) {
7
- try {
8
- const file = path . join ( process . cwd ( ) , 'test/turbopack-tests-manifest.json' )
6
+ async function collectResults ( manifestFile ) {
7
+ const file = path . join ( process . cwd ( ) , manifestFile )
8
+
9
+ let passingTests = ''
10
+ let failingTests = ''
11
+ let passCount = 0
12
+ let failCount = 0
13
+
14
+ const contents = await fs . readFile ( file , 'utf-8' )
15
+ const results = JSON . parse ( contents )
16
+
17
+ const currentDate = new Date ( )
18
+ const isoString = currentDate . toISOString ( )
19
+ const timestamp = isoString . slice ( 0 , 19 ) . replace ( 'T' , ' ' )
20
+
21
+ if ( results . version === 2 ) {
22
+ for ( const [ testFileName , result ] of Object . entries ( results . suites ) ) {
23
+ let suitePassCount = 0
24
+ let suiteFailCount = 0
25
+
26
+ suitePassCount += result . passed . length
27
+ suiteFailCount += result . failed . length
28
+
29
+ if ( suitePassCount > 0 ) {
30
+ passingTests += `${ testFileName } \n`
31
+ }
32
+
33
+ if ( suiteFailCount > 0 ) {
34
+ failingTests += `${ testFileName } \n`
35
+ }
36
+
37
+ for ( const passed of result . passed ) {
38
+ const passedName = passed . replaceAll ( '`' , '\\`' )
39
+ passingTests += `* ${ passedName } \n`
40
+ }
41
+
42
+ for ( const passed of result . failed ) {
43
+ const failedName = passed . replaceAll ( '`' , '\\`' )
44
+ failingTests += `* ${ failedName } \n`
45
+ }
9
46
10
- let passingTests = ''
11
- let failingTests = ''
12
- let passCount = 0
13
- let failCount = 0
47
+ passCount += suitePassCount
48
+ failCount += suiteFailCount
14
49
15
- const contents = await fs . readFile ( file , 'utf-8' )
16
- const results = JSON . parse ( contents )
50
+ if ( suitePassCount > 0 ) {
51
+ passingTests += `\n`
52
+ }
17
53
18
- const currentDate = new Date ( )
19
- const isoString = currentDate . toISOString ( )
20
- const timestamp = isoString . slice ( 0 , 19 ) . replace ( 'T' , ' ' )
54
+ if ( suiteFailCount > 0 ) {
55
+ failingTests += `\n`
56
+ }
57
+ }
21
58
59
+ const testRun = `${ process . env . GITHUB_SHA } \t${ timestamp } \t${ passCount } /${
60
+ passCount + failCount
61
+ } `
62
+ return { testRun, passingTests, failingTests }
63
+ } else {
22
64
for ( const [ testFileName , result ] of Object . entries ( results ) ) {
23
65
let suitePassCount = 0
24
66
let suiteFailCount = 0
@@ -55,26 +97,45 @@ async function main() {
55
97
failingTests += `\n`
56
98
}
57
99
}
100
+ const testRun = `${ process . env . GITHUB_SHA } \t${ timestamp } \t${ passCount } /${
101
+ passCount + failCount
102
+ } `
103
+
104
+ return { testRun, passingTests, failingTests }
105
+ }
106
+ }
107
+
108
+ async function main ( ) {
109
+ try {
110
+ const developmentResult = await collectResults (
111
+ 'test/turbopack-dev-tests-manifest.json'
112
+ )
113
+
114
+ const productionResult = await collectResults (
115
+ 'test/turbopack-build-tests-manifest.json'
116
+ )
58
117
59
118
const kv = createClient ( {
60
119
url : process . env . TURBOYET_KV_REST_API_URL ,
61
120
token : process . env . TURBOYET_KV_REST_API_TOKEN ,
62
121
} )
63
122
64
- const testRun = `${ process . env . GITHUB_SHA } \t${ timestamp } \t${ passCount } /${
65
- passCount + failCount
66
- } `
123
+ console . log ( 'TEST RESULT DEVELOPMENT' )
124
+ console . log ( developmentResult . testRun )
67
125
68
- console . log ( 'TEST RESULT' )
69
- console . log ( testRun )
126
+ console . log ( 'TEST RESULT PRODUCTION ' )
127
+ console . log ( productionResult . testRun )
70
128
71
- await kv . rpush ( 'test-runs' , testRun )
129
+ await kv . rpush ( 'test-runs' , developmentResult . testRun )
130
+ await kv . rpush ( 'test-runs-production' , productionResult . testRun )
72
131
console . log ( 'SUCCESSFULLY SAVED RUNS' )
73
132
74
- await kv . set ( 'passing-tests' , passingTests )
133
+ await kv . set ( 'passing-tests' , developmentResult . passingTests )
134
+ await kv . set ( 'passing-tests-production' , productionResult . passingTests )
75
135
console . log ( 'SUCCESSFULLY SAVED PASSING' )
76
136
77
- await kv . set ( 'failing-tests' , failingTests )
137
+ await kv . set ( 'failing-tests' , developmentResult . failingTests )
138
+ await kv . set ( 'failing-tests-production' , productionResult . failingTests )
78
139
console . log ( 'SUCCESSFULLY SAVED FAILING' )
79
140
} catch ( error ) {
80
141
console . log ( error )
0 commit comments