b63ab46f54
Tests / Integration Tests (push) Successful in 1m11s
Tests / Unit Tests (push) Failing after 11m56s
Anti-EAV Lint + Quality Gate / anti-eav-lint (push) Failing after 12m7s
Tests / PHPStan (push) Failing after 14m37s
Tests / PHPCS (push) Failing after 14m46s
Tests / PHP Lint (push) Failing after 14m57s
- readme.txt(WP 外掛目錄格式,隨 ZIP 發佈):Stable tag 對齊 1.0.0, changelog 補 1.0.0 條目 - CONTEXT.md(領域詞彙表):Status 區塊改寫為 v1.0.0 實況; HPCT_INTERCEPTORS 與 HivePress Adapter 兩節標註「已搬到 AddOn,核心無此常數」 - docs/:ENTITY_ADAPTER_COOKBOOK、2 篇 ADR、INTEGRATION_PATTERN_DECISION、 anti-eav-lint.yml.template - cookbook 修掉兩個死連結(ANTI_EAV_PLAYBOOK 在來源外掛就不存在) - INTEGRATION_PATTERN_DECISION 加 v1.0.0 後記:結論已被 AddOn 拆分取代 - template 改 wpdev/2meet-data-optimizer + ref v1.0.0 + wp tmdo lint - README.md 文件索引補上以上 7 個檔案 前綴改寫刻意只動類別/函式/slug(WPDO_→TMDO_、wp-data-optimizer→2meet-...), wpdo_ option/cron/hook/表名與 wpdo/v1 REST namespace 一律保留 —— 這是資料層 零遷移的前提。
64 lines
2.3 KiB
Plaintext
64 lines
2.3 KiB
Plaintext
name: Anti-EAV Strict Lint
|
|
|
|
# Drop this file into each partner plugin's `.github/workflows/anti-eav-lint.yml`.
|
|
# Required: `2meet-data-optimizer` v1.0.0+ available either via:
|
|
# (a) Composer dev dependency on the plugin repo, OR
|
|
# (b) Side-by-side checkout in the same workspace.
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ main, master, develop ]
|
|
push:
|
|
branches: [ main, master ]
|
|
|
|
jobs:
|
|
anti-eav-lint:
|
|
name: Anti-EAV Strict Lint (wp tmdo lint --strict)
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout this plugin
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: this-plugin
|
|
|
|
- name: Checkout 2meet-data-optimizer
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: wpdev/2meet-data-optimizer
|
|
path: 2meet-data-optimizer
|
|
ref: v1.0.0
|
|
|
|
- name: Setup PHP 8.3
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '8.3'
|
|
tools: composer:v2, wp-cli
|
|
|
|
- name: Install 2meet-data-optimizer dependencies
|
|
working-directory: 2meet-data-optimizer
|
|
run: composer install --no-interaction --no-dev --prefer-dist
|
|
|
|
- name: Bootstrap minimal WP for wp-cli
|
|
run: |
|
|
# Install a throwaway WordPress so wp-cli has runtime context.
|
|
wp core download --path=/tmp/wp --skip-content
|
|
wp config create --path=/tmp/wp --dbname=wp_lint --dbuser=root --dbpass=root --dbhost=127.0.0.1
|
|
# Symlink 2meet-data-optimizer into the wp-content/plugins dir so its CLI loads.
|
|
mkdir -p /tmp/wp/wp-content/plugins
|
|
ln -s "$GITHUB_WORKSPACE/2meet-data-optimizer" /tmp/wp/wp-content/plugins/2meet-data-optimizer
|
|
|
|
- name: Run wp tmdo lint --strict
|
|
run: |
|
|
cd /tmp/wp
|
|
wp --skip-themes --skip-plugins=all tmdo lint \
|
|
--plugin="$GITHUB_WORKSPACE/this-plugin" \
|
|
--strict \
|
|
--max-autoload=30
|
|
# Exit non-zero on:
|
|
# - Direct SELECT FROM wp_postmeta / wp_usermeta / wp_termmeta / wp_commentmeta
|
|
# - update_post_meta() on a field already registered to the TMDO Schema Registry
|
|
# - autoload=yes options exceeding --max-autoload (default 30)
|
|
# - meta_query with ≥3 conditions but no wpdo_register_fields
|
|
# Bypass: phpcs:ignore WPDO.AntiEAV.<rule> -- <reason>
|