Reuse existing output #426
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Preview PR | |
on: | |
pull_request_target: | |
types: [ labeled ] | |
jobs: | |
build: | |
runs-on: "ubuntu-22.04" | |
if: "github.repository_owner == 'php' && github.event.label.name == 'Status: Preview Allowed'" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "refs/pull/${{ github.event.number }}/merge" | |
- uses: easingthemes/ssh-deploy@main | |
with: | |
REMOTE_HOST: ${{ secrets.PREVIEW_REMOTE_HOST }} | |
REMOTE_USER: ${{ secrets.PREVIEW_REMOTE_USER }} | |
SSH_PRIVATE_KEY: ${{ secrets.PREVIEW_SSH_KEY }} | |
TARGET: "/home/thephpfoundation/preview/web-php-pr-${{ github.event.number }}/public" | |
SCRIPT_BEFORE: bash /home/thephpfoundation/scripts/pr_created_pre.sh web-php ${{ github.event.number }} | |
SCRIPT_AFTER: bash /home/thephpfoundation/scripts/pr_created.sh web-php ${{ github.event.number }} | |
- uses: peter-evans/find-comment@v3 | |
id: fc | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: 'Preview for commit' | |
- uses: peter-evans/create-or-update-comment@v4 | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
edit-mode: 'replace' | |
body: | | |
🚀 Preview for commit ${{ github.sha }} can be found at https://web-php-pr-${{ github.event.number }}.preview.thephp.foundation | |
tests_visual: | |
name: "Visual Tests" | |
runs-on: "ubuntu-latest" | |
if: "github.repository_owner == 'php' && github.event.label.name == 'Status: Preview Allowed'" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
node-version: | |
- "22.x" | |
env: | |
HTTP_HOST: "localhost:8080" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "refs/pull/${{ github.event.number }}/merge" | |
- uses: shivammathur/setup-php@v2 | |
with: | |
coverage: "none" | |
extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter" | |
php-version: "${{ matrix.php-version }}" | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Set up problem matchers for phpunit/phpunit" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" | |
- name: "Determine composer cache directory" | |
run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" | |
- name: "Cache dependencies installed with composer" | |
uses: actions/cache@v4 | |
with: | |
path: "${{ env.COMPOSER_CACHE_DIR }}" | |
key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-" | |
- name: "Install dependencies with composer" | |
run: "composer install --ansi --no-interaction --no-progress" | |
- name: "Install dependencies" | |
run: "yarn install" | |
- name: "Install Playwright" | |
run: "npx playwright install" | |
- name: "Run visual tests" | |
run: "make tests_visual" | |
- uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: playwright-report | |
path: playwright-report/ | |
retention-days: 30 | |
- uses: easingthemes/ssh-deploy@main | |
if: ${{ !cancelled() }} | |
with: | |
REMOTE_HOST: ${{ secrets.PREVIEW_REMOTE_HOST }} | |
REMOTE_USER: ${{ secrets.PREVIEW_REMOTE_USER }} | |
SSH_PRIVATE_KEY: ${{ secrets.PREVIEW_SSH_KEY }} | |
SOURCE: "playwright-report/" | |
TARGET: "/home/thephpfoundation/preview/web-php-regression-report-pr-${{ github.event.number }}/public" | |
SCRIPT_BEFORE: bash /home/thephpfoundation/scripts/pr_created_pre.sh web-php-regression-report ${{ github.event.number }} | |
- uses: peter-evans/find-comment@v3 | |
if: ${{ !cancelled() }} | |
id: snapshot | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: 'Regression report for commit' | |
- uses: peter-evans/create-or-update-comment@v4 | |
if: ${{ !cancelled() }} | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-id: ${{ steps.snapshot.outputs.comment-id }} | |
edit-mode: 'replace' | |
body: | | |
🚀 Regression report for commit ${{ github.sha }} is at https://web-php-regression-report-pr-${{ github.event.number }}.preview.thephp.foundation |