-
Notifications
You must be signed in to change notification settings - Fork 15
133 lines (110 loc) · 3.33 KB
/
run.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: Run test262 in all engines and publish
on:
workflow_dispatch:
push:
branches: [ "main" ]
paths: [ ".github/workflows/run.yml", "scripts/**/*", "helpers/**/*", "site/generate.mjs" ]
schedule:
- cron: "0 0 * * *" # autorun daily at midnight utc
jobs:
make-chunks:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Make chunks
run: |
git clone https://github.com/tc39/test262.git --depth 1
cd helpers/chunkify
npm install
cd ../..
node helpers/chunkify/index.mjs 4
- name: Upload chunks
uses: actions/upload-artifact@v3
with:
name: chunks
path: |
chunks.json
time.txt
test262:
runs-on: ubuntu-22.04
needs: make-chunks
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
env:
CIRCLE_TOKEN: ${{ secrets.CIRCLE_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHUNKS_PATH: ../chunks/chunks.json
CHUNK_NUMBER: ${{ matrix.chunk }}
CHUNK_COUNT: 4
strategy:
matrix:
engine: [v8, v8_exp, jsc, sm, sm_exp, chakra, hermes, kiesel, porffor, libjs, engine262, qjs, xs, graaljs, nashorn, rhino, boa, babel, swc, sucrase] # all
chunk: [0, 1, 2, 3]
# engine: [v8, jsc, sm, chakra, hermes, kiesel, libjs, qjs, xs, graaljs] # exclude hangers/long
# engine: [chakra, graaljs, jsc, kiesel, libjs, qjs, xs] # all fast
# engine: [v8, jsc, sm, chakra] # just major
# engine: [hermes] # just hermes
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Download chunks
uses: actions/download-artifact@v3
with:
name: chunks
path: chunks
- name: Run test262 with ${{ matrix.engine }}
run: ./scripts/engines/${{ matrix.engine }}.sh
- name: Upload results
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.engine }}${{ matrix.chunk }}
path: |
results${{ matrix.chunk }}.json
jsvu.json
esvu.json
time${{ matrix.chunk }}.txt
version.txt
test262-rev.txt
- name: Download results
uses: actions/download-artifact@v3
continue-on-error: true
with:
path: results
- name: Download results take 2
uses: actions/download-artifact@v3
if: ${{ failure() }}
with:
path: results
- name: Fix pages artifact
continue-on-error: true
run: |
cd results/github-pages
tar -xf artifact.tar
# - name: Download old results
# run: |
# node scripts/downloadOldResults.mjs
# sh scripts/extractResults.sh
- name: Generate site
id: generate
continue-on-error: true
run: node --max-old-space-size=4096 site/generate.mjs
- name: Upload pages artifact
if: steps.generate.outcome == 'success'
continue-on-error: true
uses: actions/upload-pages-artifact@v1
with:
path: site
- name: Deploy to GitHub Pages
id: deployment
if: steps.generate.outcome == 'success'
continue-on-error: true
uses: actions/deploy-pages@v2