# 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.4" extensions: opcache, ${{ env.PHP_EXTENSIONS }} ini-values: ${{ env.PHP_INI_VALUES }} coverage: none - name: "Install dependencies with composer" uses: ramsey/composer-install@v3 - name: "Run PHPBench" run: php vendor/bin/phpbench run --progress=plain --report=bare --output=csv - name: "Parse benchmark results" run: php benchmark/parse-result.php - name: "Generate HTML report" run: php benchmark/generate-html.php - name: "Generate Markdown report" run: php benchmark/generate-markdown.php - name: "Publish results to branch benchmark" uses: JamesIves/github-pages-deploy-action@v4 with: branch: benchmark folder: .build/phpbench clean: true