Skip to content

Keep SVG URLs remote during export #1174

Keep SVG URLs remote during export

Keep SVG URLs remote during export #1174

Workflow file for this run

name: Run checks
on:
pull_request:
push:
branches:
- trunk
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install dependencies
uses: php-actions/composer@v6
with:
args: --ignore-platform-reqs
- name: Install Dependencies
run: npm i
- name: Run PHP Lint
run: npm run lint:php
- name: Run JS Lint
if: success() || failure()
run: npm run lint:js
- name: Run CSS Lint
if: success() || failure()
run: npm run lint:css
- name: Run Markdown Lint
if: success() || failure()
run: npm run lint:md-docs
- name: Run package.json Lint
if: success() || failure()
run: npm run lint:pkg-json
compute-previous-wordpress-version:
name: Compute previous WordPress version
runs-on: ubuntu-latest
permissions: {}
outputs:
previous-wordpress-version: ${{ steps.get-previous-wordpress-version.outputs.previous-wordpress-version }}
steps:
- name: Get previous WordPress version
id: get-previous-wordpress-version
run: |
curl \
-H "Accept: application/json" \
-o versions.json \
"http://api.wordpress.org/core/stable-check/1.0/"
LATEST_WP_VERSION="$(jq --raw-output 'with_entries(select(.value=="latest"))|keys[]' versions.json)"
# shellcheck disable=SC2034
IFS='.' read -r LATEST_WP_MAJOR LATEST_WP_MINOR LATEST_WP_PATCH <<< "${LATEST_WP_VERSION}"
if [[ "${LATEST_WP_MINOR}" == "0" ]]; then
PREVIOUS_WP_SERIES="$((LATEST_WP_MAJOR - 1)).9"
else
PREVIOUS_WP_SERIES="${LATEST_WP_MAJOR}.$((LATEST_WP_MINOR - 1))"
fi
PREVIOUS_WP_VERSION="$(jq --raw-output --arg series "${PREVIOUS_WP_SERIES}" 'with_entries(select(.key|startswith($series)))|keys[-1]' versions.json)"
echo "previous-wordpress-version=${PREVIOUS_WP_VERSION}" >> "$GITHUB_OUTPUT"
rm versions.json
tests:
name: PHP ${{ matrix.php }}${{ matrix.wordpress != '' && format( ' (WP {0})', matrix.wordpress ) || '' }}
needs: [compute-previous-wordpress-version]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0', '8.1', '8.2', '8.3']
wordpress: ['', 'previous major version']
env:
WP_ENV_PHP_VERSION: ${{ matrix.php }}
WP_ENV_CORE: ${{ matrix.wordpress == '' && 'WordPress/WordPress' || format( 'https://wordpress.org/wordpress-{0}.zip', needs.compute-previous-wordpress-version.outputs.previous-wordpress-version ) }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install Composer
uses: php-actions/composer@v6
with:
args: --ignore-platform-reqs
- name: Install Node Dependencies
run: npm i
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '${{ matrix.php }}'
ini-file: development
coverage: none
- name: Docker debug information
run: docker -v
- name: Start Docker environment
run: npm run wp-env start
- name: Docker container debug information
run: npm run wp-env run tests-cli wp core version
- name: Log running Docker containers
run: docker ps -a
- name: Run PHP tests
run: npm run test:unit:php:base
- name: Run API PHP tests in multisite
run: npm run test:unit:php:multisite-api
e2e:
name: E2E Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install Node Dependencies
run: npm i
- name: Build JavaScript
run: npm run build
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: Start wp-env
run: npm run test:unit:php:setup
- name: Run E2E tests
run: npm run test:e2e
- name: Upload test artifacts on failure
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-artifacts
path: artifacts/
if-no-files-found: ignore