Skip to content

Bump actions/upload-artifact from 4 to 5 (#99) #139

Bump actions/upload-artifact from 4 to 5 (#99)

Bump actions/upload-artifact from 4 to 5 (#99) #139

Workflow file for this run

name: "All Pull Request Tests"
on:
push:
branches:
- develop
pull_request:
branches:
- develop
types: [opened, synchronize, reopened, ready_for_review]
jobs:
# We use a single job to ensure that all steps run in the same environment and
# reduce the number of minutes used.
pr-tests:
# Don't run on draft PRs
if: github.event.pull_request.draft == false
# Timeout after 10 minutes
timeout-minutes: 10
# Define a matrix of PHP/WordPress versions to test against
strategy:
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
wordpress: ["latest"]
runs-on: ubuntu-latest
# Cancel any existing runs of this workflow
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}-P${{ matrix.php }}-WP${{ matrix.wordpress }}
cancel-in-progress: true
# Name the job in the matrix
name: "PR Tests PHP ${{ matrix.php }} WordPress ${{ matrix.wordpress }}"
steps:
- uses: actions/checkout@v4
- name: Run General Tests
# See https://github.com/alleyinteractive/action-test-general for more options
uses: alleyinteractive/action-test-general@develop
- name: Run Node Tests
# See https://github.com/alleyinteractive/action-test-node for more options.
# Defaults to the latest LTS version.
uses: alleyinteractive/action-test-node@develop
- name: Run PHP Tests
# See https://github.com/alleyinteractive/action-test-php for more options
uses: alleyinteractive/action-test-php@develop
with:
php-version: '${{ matrix.php }}'
wordpress-version: '${{ matrix.wordpress }}'
skip-services: 'true'
skip-wordpress-install: 'true'
- name: Install Playwright Browsers
run: npx playwright install chromium --with-deps
- name: Install and start wp-env
timeout-minutes: 5
run: |
npm install --global @wordpress/env
wp-env start
# Wait for the server to be ready
while ! curl -s http://localhost:8888 > /dev/null; do
sleep 1
done
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v5
if: ${{ !cancelled() }}
with:
name: playwright-report-php${{ matrix.php }}-wp${{ matrix.wordpress }}
path: playwright-report/
retention-days: 30
all-pr-checks-passed:
name: All PR checks passed
needs:
- pr-tests
runs-on: ubuntu-latest
if: always()
steps:
- name: Check job statuses
run: |
if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then
echo "One or more jobs failed"
exit 1
elif [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
echo "One or more jobs were cancelled"
exit 1
else
echo "All jobs passed or were skipped"
exit 0
fi