@@ -48,114 +48,6 @@ jobs:
48
48
NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
49
49
run : pnpm release
50
50
51
- deploy-benchmark-report :
52
- needs : release
53
- runs-on : ubuntu-latest
54
- permissions :
55
- contents : write
56
- pages : write
57
- steps :
58
- - name : Checkout
59
- uses : actions/checkout@v4
60
- with :
61
- fetch-depth : 0
62
-
63
- - name : Using pnpm
64
- uses : pnpm/action-setup@v3
65
- with :
66
- version : 9.3.0
67
-
68
- - name : Setup Node
69
- uses : actions/setup-node@v4
70
- with :
71
- node-version : 20
72
- cache : pnpm
73
-
74
- - name : Install dependencies
75
- run : pnpm install
76
-
77
- - name : Run benchmark tests
78
- run : pnpm benchmark:worker
79
-
80
- - name : Create Reports Directory
81
- run : |
82
- mkdir -p gh-pages-deploy/benchmark-reports
83
- cp -r worker-benchmark/benchmark-reports/* gh-pages-deploy/benchmark-reports/
84
-
85
- # 创建索引页面 - 使用echo命令逐行添加内容而不是heredoc
86
- echo '<!DOCTYPE html>' > gh-pages-deploy/benchmark-reports/index.html
87
- echo '<html lang="zh-CN">' >> gh-pages-deploy/benchmark-reports/index.html
88
- echo '<head>' >> gh-pages-deploy/benchmark-reports/index.html
89
- echo ' <meta charset="UTF-8">' >> gh-pages-deploy/benchmark-reports/index.html
90
- echo ' <meta name="viewport" content="width=device-width, initial-scale=1.0">' >> gh-pages-deploy/benchmark-reports/index.html
91
- echo ' <title>Vue Styled Components 性能基准测试报告</title>' >> gh-pages-deploy/benchmark-reports/index.html
92
- echo ' <style>' >> gh-pages-deploy/benchmark-reports/index.html
93
- echo ' body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 1000px; margin: 0 auto; padding: 20px; line-height: 1.6; }' >> gh-pages-deploy/benchmark-reports/index.html
94
- echo ' h1 { color: #2c3e50; }' >> gh-pages-deploy/benchmark-reports/index.html
95
- echo ' .report-list { list-style: none; padding: 0; }' >> gh-pages-deploy/benchmark-reports/index.html
96
- echo ' .report-item { margin-bottom: 10px; padding: 15px; border-radius: 8px; background-color: #f8f9fa; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }' >> gh-pages-deploy/benchmark-reports/index.html
97
- echo ' .report-link { display: block; color: #3498db; font-weight: bold; text-decoration: none; }' >> gh-pages-deploy/benchmark-reports/index.html
98
- echo ' .report-link:hover { text-decoration: underline; }' >> gh-pages-deploy/benchmark-reports/index.html
99
- echo ' .report-date { color: #7f8c8d; font-size: 0.9em; margin-top: 5px; }' >> gh-pages-deploy/benchmark-reports/index.html
100
- echo ' </style>' >> gh-pages-deploy/benchmark-reports/index.html
101
- echo '</head>' >> gh-pages-deploy/benchmark-reports/index.html
102
- echo '<body>' >> gh-pages-deploy/benchmark-reports/index.html
103
- echo ' <h1>Vue Styled Components 性能基准测试报告</h1>' >> gh-pages-deploy/benchmark-reports/index.html
104
- echo ' <p>此页面列出了所有可用的性能基准测试报告。点击链接查看详细报告。</p>' >> gh-pages-deploy/benchmark-reports/index.html
105
- echo ' <ul class="report-list" id="reportList">' >> gh-pages-deploy/benchmark-reports/index.html
106
- echo ' <li>正在加载报告列表...</li>' >> gh-pages-deploy/benchmark-reports/index.html
107
- echo ' </ul>' >> gh-pages-deploy/benchmark-reports/index.html
108
- echo ' <script>' >> gh-pages-deploy/benchmark-reports/index.html
109
- echo ' async function loadReports() {' >> gh-pages-deploy/benchmark-reports/index.html
110
- echo ' const reportList = document.getElementById("reportList");' >> gh-pages-deploy/benchmark-reports/index.html
111
- echo ' reportList.innerHTML = "";' >> gh-pages-deploy/benchmark-reports/index.html
112
- echo ' try {' >> gh-pages-deploy/benchmark-reports/index.html
113
- echo ' const response = await fetch(".");' >> gh-pages-deploy/benchmark-reports/index.html
114
- echo ' const text = await response.text();' >> gh-pages-deploy/benchmark-reports/index.html
115
- echo ' const parser = new DOMParser();' >> gh-pages-deploy/benchmark-reports/index.html
116
- echo ' const doc = parser.parseFromString(text, "text/html");' >> gh-pages-deploy/benchmark-reports/index.html
117
- echo ' const links = Array.from(doc.querySelectorAll("a")).filter(a => a.href.endsWith(".html") && a.href !== "index.html");' >> gh-pages-deploy/benchmark-reports/index.html
118
- echo ' links.sort((a, b) => b.href.localeCompare(a.href));' >> gh-pages-deploy/benchmark-reports/index.html
119
- echo ' if (links.length === 0) {' >> gh-pages-deploy/benchmark-reports/index.html
120
- echo ' reportList.innerHTML = "<li>暂无可用报告</li>";' >> gh-pages-deploy/benchmark-reports/index.html
121
- echo ' return;' >> gh-pages-deploy/benchmark-reports/index.html
122
- echo ' }' >> gh-pages-deploy/benchmark-reports/index.html
123
- echo ' links.forEach(link => {' >> gh-pages-deploy/benchmark-reports/index.html
124
- echo ' const fileName = link.href.split("/").pop();' >> gh-pages-deploy/benchmark-reports/index.html
125
- echo ' const dateMatch = fileName.match(/benchmark-report-(.*?)\.html/);' >> gh-pages-deploy/benchmark-reports/index.html
126
- echo ' let dateStr = "";' >> gh-pages-deploy/benchmark-reports/index.html
127
- echo ' if (dateMatch && dateMatch[1]) {' >> gh-pages-deploy/benchmark-reports/index.html
128
- echo ' const timestamp = dateMatch[1].replace(/T/g, " ").replace(/-/g, ":");' >> gh-pages-deploy/benchmark-reports/index.html
129
- echo ' try {' >> gh-pages-deploy/benchmark-reports/index.html
130
- echo ' const date = new Date(timestamp);' >> gh-pages-deploy/benchmark-reports/index.html
131
- echo ' dateStr = date.toLocaleString("zh-CN");' >> gh-pages-deploy/benchmark-reports/index.html
132
- echo ' } catch(e) { dateStr = timestamp; }' >> gh-pages-deploy/benchmark-reports/index.html
133
- echo ' }' >> gh-pages-deploy/benchmark-reports/index.html
134
- echo ' const li = document.createElement("li");' >> gh-pages-deploy/benchmark-reports/index.html
135
- echo ' li.className = "report-item";' >> gh-pages-deploy/benchmark-reports/index.html
136
- echo ' li.innerHTML = `<a href="${fileName}" class="report-link">性能测试报告 - ${dateStr || fileName}</a><div class="report-date">生成于: ${dateStr || "未知时间"}</div>`;' >> gh-pages-deploy/benchmark-reports/index.html
137
- echo ' reportList.appendChild(li);' >> gh-pages-deploy/benchmark-reports/index.html
138
- echo ' });' >> gh-pages-deploy/benchmark-reports/index.html
139
- echo ' } catch (error) {' >> gh-pages-deploy/benchmark-reports/index.html
140
- echo ' reportList.innerHTML = "<li>加载报告列表失败</li>";' >> gh-pages-deploy/benchmark-reports/index.html
141
- echo ' console.error("加载报告列表失败:", error);' >> gh-pages-deploy/benchmark-reports/index.html
142
- echo ' }' >> gh-pages-deploy/benchmark-reports/index.html
143
- echo ' }' >> gh-pages-deploy/benchmark-reports/index.html
144
- echo ' document.addEventListener("DOMContentLoaded", loadReports);' >> gh-pages-deploy/benchmark-reports/index.html
145
- echo ' </script>' >> gh-pages-deploy/benchmark-reports/index.html
146
- echo '</body>' >> gh-pages-deploy/benchmark-reports/index.html
147
- echo '</html>' >> gh-pages-deploy/benchmark-reports/index.html
148
-
149
- - name : Deploy to GitHub Pages
150
- uses : JamesIves/github-pages-deploy-action@v4
151
- with :
152
- folder : gh-pages-deploy
153
- target-folder : benchmark-reports
154
- clean : false
155
- clean-exclude : |
156
- !benchmark-reports/**/*
157
- token : ${{ secrets.GITHUB_TOKEN }}
158
-
159
51
sync-beta :
160
52
runs-on : ubuntu-latest
161
53
needs : release
0 commit comments