mirror of
https://github.com/LamGC/wp-asciiplayer.git
synced 2026-10-12 23:33:55 +00:00
Refresh player with native block editor preview and local assets
Preserve shortcode rendering, normalize options, bundle the player locally, and add reproducible packaging and WordPress integration tests.
This commit is contained in:
@@ -1,11 +1,6 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm" # See documentation for possible values
|
||||
directory: "/asciiplayer" # Location of package manifests
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: daily
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
name: Build and WordPress integration
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: ['main', 'codex/**']
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
php-compatibility:
|
||||
name: PHP ${{ matrix.php }} syntax and regression tests
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php: ['7.4', '8.3']
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Check syntax and execute PHP regression tests
|
||||
run: |
|
||||
docker run --rm -v "$PWD:/app" -w /app "php:${{ matrix.php }}-cli" sh -ec '
|
||||
find . -type f -name "*.php" -not -path "./node_modules/*" -print0 | xargs -0 -n1 php -l
|
||||
php tests/php/run.php
|
||||
'
|
||||
|
||||
wordpress:
|
||||
name: WordPress ${{ matrix.wordpress }} / PHP ${{ matrix.php }}
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- wordpress: 'latest'
|
||||
php: '8.2'
|
||||
- wordpress: '6.3'
|
||||
php: '7.4'
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
- run: npm test
|
||||
- run: npm run package
|
||||
- name: Configure clean WordPress version
|
||||
env:
|
||||
WP_TEST_VERSION: ${{ matrix.wordpress }}
|
||||
WP_TEST_PHP: ${{ matrix.php }}
|
||||
run: |
|
||||
node --input-type=module <<'JS'
|
||||
import fs from 'node:fs';
|
||||
fs.writeFileSync('.wp-env.override.json', JSON.stringify({
|
||||
core: process.env.WP_TEST_VERSION === 'latest' ? null : `https://wordpress.org/wordpress-${process.env.WP_TEST_VERSION}.zip`,
|
||||
phpVersion: process.env.WP_TEST_PHP,
|
||||
}, null, 2));
|
||||
JS
|
||||
- name: Start real WordPress and install only the packaged plugin
|
||||
run: |
|
||||
npx --no-install wp-env start
|
||||
npx --no-install wp-env run cli wp plugin install /var/www/html/wp-content/asciiplayer-packages/wp-asciiplayer.zip --activate --force
|
||||
npx --no-install wp-env run cli wp plugin is-active wp-asciiplayer
|
||||
npx --no-install wp-env run cli wp core version | tee wordpress-version.txt
|
||||
npx --no-install wp-env run cli wp plugin list
|
||||
- name: Install Chromium
|
||||
run: npx --no-install playwright install --with-deps chromium
|
||||
- name: Exercise editor iframe, saved blocks, Pages, posts and legacy shortcodes
|
||||
run: npm run test:e2e
|
||||
- name: Run Plugin Check (advisory until directory review)
|
||||
if: always() && matrix.wordpress == 'latest'
|
||||
continue-on-error: true
|
||||
run: |
|
||||
npx --no-install wp-env run cli wp plugin install plugin-check --activate
|
||||
npx --no-install wp-env run cli wp plugin get plugin-check --field=version | tee plugin-check-version.txt
|
||||
npx --no-install wp-env run cli wp plugin check wp-asciiplayer --require=/var/www/html/wp-content/plugins/plugin-check/cli.php --format=json | tee plugin-check-report.txt
|
||||
- name: Record WordPress and PHP logs
|
||||
if: always()
|
||||
run: |
|
||||
npx --no-install wp-env logs --watch=false > wordpress-logs.txt 2>&1 || true
|
||||
npx --no-install wp-env run cli sh -c 'test ! -f wp-content/debug.log || cat wp-content/debug.log' > wordpress-debug.txt 2>&1 || true
|
||||
- name: Upload integration evidence and installable ZIP
|
||||
if: always()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: wordpress-${{ matrix.wordpress }}-php-${{ matrix.php }}
|
||||
if-no-files-found: warn
|
||||
retention-days: 14
|
||||
path: |
|
||||
playwright-report/
|
||||
test-results/
|
||||
plugin-check-version.txt
|
||||
plugin-check-report.txt
|
||||
wordpress-version.txt
|
||||
wordpress-logs.txt
|
||||
wordpress-debug.txt
|
||||
dist/wp-asciiplayer.zip
|
||||
- name: Stop WordPress
|
||||
if: always()
|
||||
run: npx --no-install wp-env stop
|
||||
Reference in New Issue
Block a user