@@ -48,114 +48,6 @@ jobs:
4848 NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
4949 run : pnpm release
5050
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-
15951 sync-beta :
16052 runs-on : ubuntu-latest
16153 needs : release
0 commit comments