Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 170 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
name: Quality

on:
push:
branches: [main]
tags: ['*']
pull_request:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: none
- run: sudo apt-get update
- run: sudo apt-get install -y gettext
- run: npm ci --no-audit --no-fund
- run: npm audit --omit=dev --audit-level=high
- run: npm audit --audit-level=critical
- run: npm run lint:js
- run: npm run lint:css
- run: npm run lint:php
- run: npm run test:unit
- run: npm run build
- run: npm run check:rtl
- run: git diff --exit-code -- build
- run: msgfmt --check -o /dev/null languages/lineweb-blocks-el_GR.po
- run: test -z "$(msgattrib --untranslated languages/lineweb-blocks-el_GR.po | grep '^msgid ')"

e2e:
strategy:
fail-fast: false
matrix:
theme: [twentytwentyone, twentytwentyfive]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci --no-audit --no-fund
- run: npx playwright install --with-deps chromium
- run: npm run build
- run: node tools/write-ci-wp-env.mjs
- run: npm run env:start
- run: npx wp-env run cli wp plugin activate lineweb-blocks
- run: npx wp-env run cli wp theme install ${{ matrix.theme }} --activate
- run: npm run test:e2e
- if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-${{ matrix.theme }}
path: artifacts/**
- if: always()
run: npm run env:stop

rtl:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci --no-audit --no-fund
- run: npx playwright install --with-deps chromium
- run: npm run build
- run: node tools/write-ci-wp-env.mjs
- run: npm run env:start
- run: npx wp-env run cli wp plugin activate lineweb-blocks
- run: npx wp-env run cli wp theme install twentytwentyfive --activate
- name: Create the public RTL fixture
run: >-
npx wp-env run cli wp post create
--post_type=page
--post_status=publish
--post_title='Lineweb RTL test'
--post_name=lineweb-rtl-test
--post_content='<!-- wp:lineweb/roi-calculator /--><!-- wp:lineweb/decision-matrix /-->'
- run: npx wp-env run cli wp language core install ar --activate
- run: npx wp-env run cli wp site switch-language ar
- run: npm run test:e2e:rtl
- if: failure()
uses: actions/upload-artifact@v4
with:
name: rtl-e2e
path: artifacts/**
- if: always()
run: npm run env:stop

release-zip:
needs: static
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci --no-audit --no-fund
- run: npm run build
- run: npm run check:rtl
- run: npm run plugin-zip
- name: Configure an archive-only WordPress environment
env:
WP_ENV_MODE: archive
run: node tools/write-ci-wp-env.mjs
- run: npm run env:start
- run: npx wp-env run cli wp plugin install /var/www/html/wp-content/lineweb-ci/lineweb-blocks.zip --activate
- run: npx wp-env run cli wp plugin install plugin-check --activate
- run: npx wp-env run cli wp plugin check lineweb-blocks
- uses: actions/upload-artifact@v4
with:
name: lineweb-blocks-release-candidate
path: lineweb-blocks.zip
- if: always()
run: npm run env:stop

compatibility:
needs: static
strategy:
fail-fast: false
matrix:
include:
- wordpress: '6.9'
php: '8.3'
- wordpress: latest
php: '8.3'
- wordpress: latest
php: '8.4'
- wordpress: latest
php: '8.5'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci --no-audit --no-fund
- run: npm run build
- name: Configure the WordPress and PHP matrix
env:
WP_VERSION: ${{ matrix.wordpress }}
PHP_VERSION: ${{ matrix.php }}
run: node tools/write-ci-wp-env.mjs
- run: npm run env:start
- run: npx wp-env run cli wp plugin activate lineweb-blocks
- run: npx wp-env run cli wp plugin status lineweb-blocks
- name: Verify server-side block registration
run: >-
npx wp-env run cli wp eval
'if ( ! WP_Block_Type_Registry::get_instance()->is_registered( "lineweb/roi-calculator" ) ) { exit( 1 ); } echo "registered\n";'
- if: always()
run: npm run env:stop
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ node_modules/
artifacts/
artifacts-commerce/
coverage/
.wp-env.json
test-results/
*.zip
.DS_Store
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
- Added complete reviewed Greek PHP/editor translations and four practical block patterns.
- Preserved nested Cost Estimator and Readiness Checklist content in saved block markup and covered both tools with editor-to-frontend E2E.
- Kept calculated annual-savings text visually separate from the price on narrow plan cards.
- Added standalone public CI for static quality, deterministic builds, Plugin Check, release ZIPs, minimum/current WordPress and PHP compatibility, and classic/block themes.
- Added automated keyboard operation, visible focus, 200%-equivalent reflow, generated RTL parity, and real Arabic RTL frontend checks.

## 0.4.0 — 2026-08-05

Expand Down
Loading
Loading