From 731e3a25ef3a7d1ee908563a4fce3dd549c3bbab Mon Sep 17 00:00:00 2001 From: smiley Date: Tue, 30 Apr 2024 22:02:45 +0200 Subject: [PATCH] :sparkles: benchmark runner --- .github/workflows/benchmark.yml | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/benchmark.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 000000000..af76b9286 --- /dev/null +++ b/.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