Skip to content

Commit f348013

Browse files
feat: PRコメントを廃止してGitHub Actions Summary表示に変更
1 parent 39e623d commit f348013

1 file changed

Lines changed: 25 additions & 78 deletions

File tree

.github/workflows/benchmark.yml

Lines changed: 25 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
go test -v ./benchmark -run TestQueryOptimizerBenchmark -timeout 10m | tee benchmark_output.txt
5353
echo "✅ ベンチマーク完了"
5454
55-
- name: Parse benchmark results
55+
- name: Create benchmark summary
5656
if: always()
5757
run: |
5858
echo "📊 ベンチマーク結果解析中..."
@@ -66,43 +66,49 @@ jobs:
6666
echo "BENCHMARK_JSON_EXISTS=false" >> $GITHUB_ENV
6767
fi
6868
69-
# テキスト出力から主要統計を抽出
69+
# GitHub Actions Summary に結果を出力
7070
if [ -f "benchmark_output.txt" ]; then
71-
echo "## 📈 クエリオプティマイザー ベンチマーク結果" > benchmark_summary.md
72-
echo "" >> benchmark_summary.md
71+
echo "## 📈 クエリオプティマイザー ベンチマーク結果" >> $GITHUB_STEP_SUMMARY
72+
echo "" >> $GITHUB_STEP_SUMMARY
7373
7474
# 成功率抽出
7575
SUCCESS_RATE=$(grep -o "実行成功率: [0-9/]* ([0-9.]*%)" benchmark_output.txt || echo "成功率情報なし")
7676
if [ "$SUCCESS_RATE" != "成功率情報なし" ]; then
77-
echo "✅ **$SUCCESS_RATE**" >> benchmark_summary.md
78-
echo "" >> benchmark_summary.md
77+
echo "✅ **$SUCCESS_RATE**" >> $GITHUB_STEP_SUMMARY
78+
echo "" >> $GITHUB_STEP_SUMMARY
7979
fi
8080
8181
# 改善度抽出
8282
AVG_IMPROVEMENT=$(grep -o "平均実行時間改善: [0-9.]*x" benchmark_output.txt || echo "")
8383
MAX_IMPROVEMENT=$(grep -o "最大実行時間改善: [0-9.]*x" benchmark_output.txt || echo "")
8484
8585
if [ -n "$AVG_IMPROVEMENT" ] || [ -n "$MAX_IMPROVEMENT" ]; then
86-
echo "### 🎯 パフォーマンス改善度" >> benchmark_summary.md
86+
echo "### 🎯 パフォーマンス改善度" >> $GITHUB_STEP_SUMMARY
8787
if [ -n "$AVG_IMPROVEMENT" ]; then
88-
echo "- ⚡ $AVG_IMPROVEMENT" >> benchmark_summary.md
88+
echo "- ⚡ $AVG_IMPROVEMENT" >> $GITHUB_STEP_SUMMARY
8989
fi
9090
if [ -n "$MAX_IMPROVEMENT" ]; then
91-
echo "- 🚀 $MAX_IMPROVEMENT" >> benchmark_summary.md
91+
echo "- 🚀 $MAX_IMPROVEMENT" >> $GITHUB_STEP_SUMMARY
9292
fi
93-
echo "" >> benchmark_summary.md
93+
echo "" >> $GITHUB_STEP_SUMMARY
9494
fi
9595
96-
# 詳細なテーブル結果を抽出
97-
echo "### 📋 詳細結果" >> benchmark_summary.md
98-
echo '```' >> benchmark_summary.md
99-
# Query結果のセクションを抽出
100-
sed -n '/📋Query/,/📈全体統計/p' benchmark_output.txt | head -n -2 >> benchmark_summary.md
101-
echo '```' >> benchmark_summary.md
102-
echo "" >> benchmark_summary.md
96+
# 詳細なテーブル結果を抽出(最初の2クエリのみ)
97+
echo "### 📋 詳細結果(抜粋)" >> $GITHUB_STEP_SUMMARY
98+
echo '```' >> $GITHUB_STEP_SUMMARY
99+
sed -n '/📋Query1/,/📋Query3/p' benchmark_output.txt | head -n -1 >> $GITHUB_STEP_SUMMARY
100+
echo '```' >> $GITHUB_STEP_SUMMARY
101+
echo "" >> $GITHUB_STEP_SUMMARY
103102
104-
echo "Generated benchmark summary:"
105-
cat benchmark_summary.md
103+
echo "### 📊 ダウンロード" >> $GITHUB_STEP_SUMMARY
104+
echo "完全な結果はArtifacts からダウンロードできます" >> $GITHUB_STEP_SUMMARY
105+
106+
# ファイルにも保存(Artifact用)
107+
cp $GITHUB_STEP_SUMMARY benchmark_summary.md 2>/dev/null || echo "Summary copy failed"
108+
109+
echo "Generated benchmark summary for Actions"
110+
else
111+
echo "❌ ベンチマーク出力ファイルが見つかりません" >> $GITHUB_STEP_SUMMARY
106112
fi
107113
108114
- name: Upload benchmark results
@@ -115,62 +121,3 @@ jobs:
115121
benchmark-results.json
116122
benchmark_summary.md
117123
retention-days: 30
118-
119-
- name: Comment benchmark results on PR
120-
if: github.event_name == 'pull_request' && always()
121-
uses: actions/github-script@v7
122-
with:
123-
script: |
124-
const fs = require('fs');
125-
126-
let comment = '## 🚀 クエリオプティマイザー ベンチマーク結果\n\n';
127-
128-
try {
129-
// benchmark_summary.mdを読み込み
130-
if (fs.existsSync('benchmark_summary.md')) {
131-
const summary = fs.readFileSync('benchmark_summary.md', 'utf8');
132-
comment += summary;
133-
} else {
134-
comment += '❌ ベンチマーク結果の解析に失敗しました。\n\n';
135-
comment += '詳細は [Actions ログ](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) を確認してください。';
136-
}
137-
138-
comment += '\n\n---\n';
139-
comment += `🔗 [完全な実行ログを確認](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})\n`;
140-
comment += `📊 実行日時: ${new Date().toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' })}`;
141-
142-
} catch (error) {
143-
comment += `❌ エラーが発生しました: ${error.message}\n\n`;
144-
comment += '詳細は Actions ログを確認してください。';
145-
}
146-
147-
// PRにコメント
148-
await github.rest.issues.createComment({
149-
issue_number: context.issue.number,
150-
owner: context.repo.owner,
151-
repo: context.repo.repo,
152-
body: comment
153-
});
154-
155-
- name: Post benchmark summary to commit
156-
if: github.event_name == 'push' && always()
157-
uses: actions/github-script@v7
158-
with:
159-
script: |
160-
const fs = require('fs');
161-
162-
let summary = '🚀 クエリオプティマイザー ベンチマーク完了\n\n';
163-
164-
try {
165-
if (fs.existsSync('benchmark_summary.md')) {
166-
const content = fs.readFileSync('benchmark_summary.md', 'utf8');
167-
// Markdown形式からプレーンテキスト形式に変換(コミット用)
168-
summary += content.replace(/###? /g, '').replace(/\*\*/g, '').replace(/```[\s\S]*?```/g, '[詳細はActionログを確認]');
169-
} else {
170-
summary += '❌ ベンチマーク解析失敗';
171-
}
172-
} catch (error) {
173-
summary += `❌ エラー: ${error.message}`;
174-
}
175-
176-
console.log('Benchmark Summary:', summary);

0 commit comments

Comments
 (0)