|
20 | 20 | runs-on: ubuntu-latest |
21 | 21 | steps: |
22 | 22 | - name: Checkout code |
23 | | - uses: actions/checkout@v6 |
| 23 | + uses: actions/checkout@v5 |
24 | 24 |
|
25 | 25 | - name: Set up Rust |
26 | 26 | uses: dtolnay/rust-toolchain@v1 |
|
43 | 43 | - name: Run benchmark command with memory tracking |
44 | 44 | id: benchmark |
45 | 45 | run: | |
46 | | - /usr/bin/time -v ./target/release/arnis --path="./world" --terrain --bbox="48.125768 11.552296 48.148565 11.593838" 2> benchmark_log.txt |
| 46 | + /usr/bin/time -v ./target/release/arnis --path="./world" --terrain --generate-map --bbox="48.125768 11.552296 48.148565 11.593838" 2> benchmark_log.txt |
47 | 47 | grep "Maximum resident set size" benchmark_log.txt | awk '{print $6}' > peak_mem_kb.txt |
48 | 48 | peak_kb=$(cat peak_mem_kb.txt) |
49 | 49 | peak_mb=$((peak_kb / 1024)) |
|
57 | 57 | duration=$((end_time - start_time)) |
58 | 58 | echo "duration=$duration" >> $GITHUB_OUTPUT |
59 | 59 |
|
| 60 | + - name: Check for map preview |
| 61 | + id: map_check |
| 62 | + run: | |
| 63 | + if [ -f "./world/arnis_world_map.png" ]; then |
| 64 | + echo "Map preview generated successfully" |
| 65 | + echo "map_exists=true" >> $GITHUB_OUTPUT |
| 66 | + else |
| 67 | + echo "Map preview not found" |
| 68 | + echo "map_exists=false" >> $GITHUB_OUTPUT |
| 69 | + fi |
| 70 | +
|
| 71 | + - name: Upload map preview as artifact |
| 72 | + if: steps.map_check.outputs.map_exists == 'true' |
| 73 | + uses: actions/upload-artifact@v4 |
| 74 | + with: |
| 75 | + name: world-map-preview |
| 76 | + path: ./world/arnis_world_map.png |
| 77 | + retention-days: 60 |
| 78 | + |
60 | 79 | - name: Format duration and generate summary |
61 | 80 | id: comment_body |
62 | 81 | run: | |
@@ -87,17 +106,28 @@ jobs: |
87 | 106 | mem_annotation=" (↗ ${mem_percent}% more)" |
88 | 107 | fi |
89 | 108 |
|
| 109 | + # Get current timestamp |
| 110 | + benchmark_time=$(date -u "+%Y-%m-%d %H:%M:%S UTC") |
| 111 | + run_url="https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" |
| 112 | +
|
90 | 113 | { |
91 | 114 | echo "summary<<EOF" |
92 | | - echo "⏱️ Benchmark run finished in **${minutes}m ${seconds}s**" |
93 | | - echo "🧠 Peak memory usage: **${peak_mem} MB**${mem_annotation}" |
| 115 | + echo "## ⏱️ Benchmark Results" |
94 | 116 | echo "" |
95 | | - echo "📈 Compared against baseline: **${baseline_time}s**" |
96 | | - echo "🧮 Delta: **${diff}s**" |
97 | | - echo "🔢 Commit: [\`${GITHUB_SHA:0:7}\`](https://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA})" |
| 117 | + echo "| Metric | Value |" |
| 118 | + echo "|--------|-------|" |
| 119 | + echo "| Duration | **${minutes}m ${seconds}s** |" |
| 120 | + echo "| Peak Memory | **${peak_mem} MB**${mem_annotation} |" |
| 121 | + echo "| Baseline | **${baseline_time}s** |" |
| 122 | + echo "| Delta | **${diff}s** |" |
| 123 | + echo "| Commit | [\`${GITHUB_SHA:0:7}\`](https://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}) |" |
98 | 124 | echo "" |
99 | 125 | echo "${verdict}" |
100 | 126 | echo "" |
| 127 | + echo "---" |
| 128 | + echo "" |
| 129 | + echo "📅 **Last benchmark:** ${benchmark_time} | 📥 [Download generated world map](${run_url}#artifacts)" |
| 130 | + echo "" |
101 | 131 | echo "_You can retrigger the benchmark by commenting \`retrigger-benchmark\`._" |
102 | 132 | echo "EOF" |
103 | 133 | } >> "$GITHUB_OUTPUT" |
|
0 commit comments