smiley 1 год назад
Родитель
Сommit
731e3a25ef
1 измененных файлов с 56 добавлено и 0 удалено
  1. 56 0
      .github/workflows/benchmark.yml

+ 56 - 0
.github/workflows/benchmark.yml

@@ -0,0 +1,56 @@
+# we're running the benchmarks in a job separate from CI as it may take some time to finish
+
+on:
+  push:
+    branches:
+      - benchmark-runner
+
+name: "Benchmark"
+
+env:
+  PHP_EXTENSIONS: fileinfo, gd, imagick, json, mbstring
+  PHP_INI_VALUES: memory_limit=-1, error_reporting=-1, display_errors=On
+
+jobs:
+
+  benchmark:
+    name: "Run Benchmark suite"
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: "Checkout sources"
+        uses: actions/checkout@v4
+        with:
+          ref: main
+
+      - name: "Install PHP"
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: "8.3"
+          extensions: opcache, ${{ env.PHP_EXTENSIONS }}
+          ini-values: ${{ env.PHP_INI_VALUES }}
+          coverage: none
+
+      - name: "Install dependencies with composer"
+        uses: ramsey/composer-install@v3
+        with:
+          working-directory: main
+
+      - name: "Run PHPBench"
+        run: php main/vendor/bin/phpbench run --progress=plain --report=bare --output=csv
+
+      - name: "Parse benchmark results"
+        run: php main/benchmark/parse-result.php
+
+      - name: "Generate HTML report"
+        run: php main/benchmark/generate-html.php
+
+      - name: "Generate Markdown report"
+        run: php main/benchmark/generate-markdown.php
+
+      - name: "Publish results to branch benchmark"
+        uses: JamesIves/github-pages-deploy-action@v4
+        with:
+          branch: benchmark
+          folder: main/.build/phpbench
+          clean: true