Skip to content

Commit c3799bd

Browse files
committed
try add benchmarks
1 parent db312d1 commit c3799bd

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

.github/workflows/dotnet.yaml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ jobs:
3737
benchmark:
3838
runs-on: ubuntu-latest
3939
needs: build-and-test
40+
permissions:
41+
contents: write
42+
pull-requests: write
4043
steps:
4144
- uses: actions/checkout@v4
4245

@@ -47,26 +50,38 @@ jobs:
4750

4851
- name: Run Benchmarks
4952
run: |
50-
mkdir -p ./BenchmarkArtifacts
53+
# Создаем абсолютный путь для артефактов в корне репозитория
54+
mkdir -p ${{ github.workspace }}/bench-results
5155
5256
if [ "${{ github.event_name }}" == "pull_request" ]; then
53-
dotnet run -c Release --project ./src/Hexecs.Benchmarks/ -- --filter '*' --exporters json --join --job LowRuntime --artifacts ./BenchmarkArtifacts
57+
dotnet run -c Release --project ./src/Hexecs.Benchmarks/ -- --filter '*' --exporters json --join --job LowRuntime --artifacts ${{ github.workspace }}/bench-results
5458
else
55-
dotnet run -c Release --project ./src/Hexecs.Benchmarks/ -- --filter '*' --exporters json --join --artifacts ./BenchmarkArtifacts
59+
dotnet run -c Release --project ./src/Hexecs.Benchmarks/ -- --filter '*' --exporters json --join --artifacts ${{ github.workspace }}/bench-results
5660
fi
5761
58-
- name: List results
59-
run: ls -R ./BenchmarkArtifacts
62+
- name: Locate Result File
63+
run: |
64+
# Находим созданный JSON (BenchmarkDotNet может положить его в подпапку results)
65+
echo "Searching for benchmark results in ${{ github.workspace }}/bench-results..."
66+
REPORT_FILE=$(find ${{ github.workspace }}/bench-results -name "*.json" | head -n 1)
67+
68+
if [ -z "$REPORT_FILE" ]; then
69+
echo "Error: No benchmark report found!"
70+
exit 1
71+
fi
72+
73+
echo "Found report: $REPORT_FILE"
74+
# Копируем его в фиксированное место для следующего шага
75+
cp "$REPORT_FILE" ${{ github.workspace }}/final-report.json
6076
6177
- name: Store benchmark result
6278
uses: benchmark-action/github-action-benchmark@v1
6379
with:
6480
tool: 'benchmarkdotnet'
65-
# BenchmarkDotNet при --join создает файл с именем '*-report-full.json' или 'BenchmarkRun-report.json'
66-
output-file-path: './BenchmarkArtifacts/results/BenchmarkRun-report.json'
81+
output-file-path: './final-report.json'
6782
github-token: ${{ secrets.GITHUB_TOKEN }}
83+
# Пушим графики в gh-pages только при мердже в мастер
6884
auto-push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
6985
comment-on-alert: true
7086
fail-on-alert: true
71-
# Порог чувствительности: 120% (запас на шум облака)
7287
alert-threshold: "120%"

0 commit comments

Comments
 (0)