Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
094a20b
Add PR build ZIP workflow
tg-autopilot Sep 2, 2026
2e1e433
Update PR review automation
tg-autopilot Sep 3, 2026
a6b0022
Merge pull request #1659 from themegrill/tg-autopilot/add-copilot-rev…
lihsaa591 Sep 3, 2026
da879ef
Add PR build ZIP workflow
tg-autopilot Sep 3, 2026
82a29f3
Add PR build ZIP workflow
tg-autopilot Sep 3, 2026
d290df4
fix: bump php-version to 8.2 to match actual composer.lock requirements
lihsaa591 Sep 3, 2026
a33051d
fix: use --legacy-peer-deps to work around a real dependency conflict
lihsaa591 Sep 3, 2026
f4a08c6
fix: stop duplicating what bin/build-zip.sh already does itself
lihsaa591 Sep 3, 2026
099a639
fix: composer install --ignore-platform-reqs to unblock CI zip builds
lihsaa591 Sep 3, 2026
6b08853
fix: correct config after end-to-end verification on a test branch
lihsaa591 Sep 3, 2026
f454b94
Merge pull request #1660 from themegrill/tg-autopilot/fix-build-zip-c…
lihsaa591 Sep 3, 2026
9b05c52
merge: pick up bin/build-zip.sh fix from develop
lihsaa591 Sep 3, 2026
38bc886
Merge pull request #1657 from themegrill/tg-autopilot/add-pr-build-zip
lihsaa591 Sep 3, 2026
2a1d567
fix: update reusable workflow reference to themegrill/.github
tg-autopilot Sep 3, 2026
b6d51c4
Update PR review automation
tg-autopilot Sep 3, 2026
b79b32c
Merge pull request #1661 from themegrill/tg-autopilot/add-copilot-rev…
lihsaa591 Sep 3, 2026
200128f
Installation process
iamprazol Sep 7, 2026
030cc48
Add - ClaudGrill skill setup and e2e test specs
iamprazol Sep 7, 2026
9ae0011
Resolve merge conflicts
iamprazol Sep 7, 2026
8e687fe
Add 3.6.1 redirect regression spec and make auth failures self-diagno…
iamprazol Sep 7, 2026
64b53d0
Fix auth.setup.ts diagnostic stalling the login on a cold run
iamprazol Sep 7, 2026
0391610
fix: address Copilot review on the E2E suite PR
iamprazol Sep 7, 2026
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
2 changes: 2 additions & 0 deletions .distignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ Gruntfile.js
webpack.config.js
tests/
node_modules/
playwright-report/
test-results/
none
package-lock.json
package.json
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/copilot-review-on-comment.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
name: Copilot review on comment

on:
pull_request_target:
types: [opened]
issue_comment:
types: [created]

jobs:
review:
uses: wpeverest/.github/.github/workflows/copilot-review-on-comment.yml@master
uses: themegrill/.github/.github/workflows/copilot-review-on-comment.yml@master
secrets:
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
10 changes: 8 additions & 2 deletions .github/workflows/evf-PR-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,16 @@ jobs:
git config --global user.email "$MY_EMAIL"
git config --global user.name "$MY_USERNAME"

- name: Use Node.js 12.x
# Node 20, not 12: @playwright/test (a devDependency since the E2E suite
# landed) declares `engines.node >= 20`, and package.json now declares the
# same minimum. npm 6 only WARNs on an engine mismatch rather than failing,
# so Node 12 installed fine — but it left CI running a Node the project no
# longer claims to support. 20.x is what .github/workflows/pr-build-zip.yml
# already uses.
- name: Use Node.js 20.x
uses: actions/setup-node@v2
with:
node-version: 12.x
node-version: 20.x

- name: Setup PHP v7.4
uses: shivammathur/setup-php@v2
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/pr-build-zip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build Testable ZIP

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches: [develop]
workflow_dispatch:

jobs:
zip:
uses: themegrill/.github/.github/workflows/pr-build-zip.yml@master
with:
node-version: '20.x'
php-version: '8.2'
package-manager: npm
# `npm run build` runs this repo's own bin/build-zip.sh, which is a
# fully self-contained release script: it does its own
# `npm install --legacy-peer-deps`, its own `composer install` (with a
# PHP-version fix pending in a separate PR to that script), its own JS
# build, and its own rsync+zip -- producing everest-forms.zip at the
# repo root already. This workflow's own install/composer steps would
# just be redundant, wasted work duplicating what the script already
# does, so they're skipped/no-op'd here rather than fighting it.
# Can't skip this like composer-install: `npm run build` is literally
# `cross-env ./bin/build-zip.sh`, and cross-env has to already be
# resolvable from node_modules/.bin before that command can even
# start -- build-zip.sh's own internal npm install happens too late
# to help with that (confirmed for real: skipping this outright hit
# "cross-env: not found"). --legacy-peer-deps for the same reason as
# documented on the build-zip.sh fix -- @ajna/pagination's peer
# dependency conflict blocks a plain `npm ci` here too.
install-command: npm ci --legacy-peer-deps
composer-install: false
build-command: npm run build
zip-glob: 'everest-forms.zip'
artifacts-bucket: themegrill-pr-artifacts
public-base-url: https://themegrill-pr-artifacts.s3.amazonaws.com
s3-region: us-east-1
secrets:
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
ARTIFACTS_KEY: ${{ secrets.ARTIFACTS_KEY }}
ARTIFACTS_SECRET: ${{ secrets.ARTIFACTS_SECRET }}
39 changes: 39 additions & 0 deletions .github/workflows/qa-suite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Written by `/claudegrill:setup`. Safe to edit — it is a plain caller.
#
# THIS IS THE ONLY PR CHECK MOST PRODUCTS NEED. No ANTHROPIC_API_KEY, no agent,
# runner minutes only.
#
# It works without AI because the developer already wrote the spec: they ran
# /claudegrill:verify-fix locally, write-spec added a @fresh spec to their
# branch, and they committed it with the fix. By the time CI sees the PR the
# regression is already a deterministic assertion.
#
# ONE job, on pull requests only. Nothing runs on a schedule: the team's model is
# a local /claudegrill:verify-fix while the fix is being written, and the e2e
# suite on the PR. No cron, no nightly, no WordPress-core watcher.
#
# `scope: changed` narrows a run to the areas the diff maps to. That is safe by
# construction — a changed file matching no `area_paths` pattern in
# .themegrill-qa/suite.json falls back to the full tier, so an unmapped change
# costs runner time, never coverage.
#
# Worth knowing, since nothing else runs the suite now: a spec whose area is
# never touched by any PR will not execute. Set `scope: full` below if you would
# rather every PR run the whole @fresh tier.

name: QA suite

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:

jobs:
# The only check. Scoped, fast, runs on every PR including drafts.
pr:
uses: ThemeGrill/claudegrill/.github/workflows/suite.yml@main
with:
product_slug: everest-forms
product_type: plugin
scope: changed

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,10 @@ phpunit-watcher.yml
/release/

/.idea/

# claudegrill local credentials
.themegrill-qa/.env.local

# playwright run artefacts
playwright-report/
test-results/
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"id":2,"count":7,"name":"Account Management","slug":"account-management","parent":0},{"id":48,"count":14,"name":"Advanced","slug":"advanced","parent":0},{"id":47,"count":4,"name":"Anti-Spam and Security","slug":"anti-spam-and-security","parent":0},{"id":35,"count":0,"name":"Basic Debugging Steps","slug":"basic-debugging-steps","parent":0},{"id":44,"count":6,"name":"CRMs","slug":"crms","parent":0},{"id":43,"count":2,"name":"Design","slug":"design","parent":0},{"id":26,"count":4,"name":"Developer's Doc","slug":"developers-doc","parent":0},{"id":3,"count":0,"name":"Everest Forms Add-ons","slug":"everest-forms-add-ons","parent":0},{"id":4,"count":10,"name":"Everest Forms Pro","slug":"everest-forms-pro","parent":0},{"id":56,"count":6,"name":"Form Customization and User Experience","slug":"form-customization-and-user-experience","parent":0},{"id":5,"count":19,"name":"Form Fields","slug":"form-fields","parent":0},{"id":17,"count":13,"name":"Frequently Asked Questions","slug":"faq","parent":0},{"id":6,"count":6,"name":"Getting Started with Form","slug":"getting-started-with-form","parent":0},{"id":7,"count":4,"name":"Getting Started with Plugin","slug":"getting-started","parent":0},{"id":8,"count":4,"name":"Global Settings","slug":"global-settings","parent":0},{"id":9,"count":43,"name":"How To?","slug":"tutorials","parent":0},{"id":10,"count":6,"name":"Individual Form Settings","slug":"individual-form-settings","parent":0},{"id":57,"count":5,"name":"Integrations","slug":"integrations","parent":0},{"id":51,"count":17,"name":"Marketing","slug":"marketing","parent":0},{"id":61,"count":7,"name":"New Payment Gateways","slug":"new-payment-gateways","parent":0},{"id":42,"count":5,"name":"Page Builder Compatibility","slug":"page-builder-compatibility","parent":0},{"id":45,"count":6,"name":"Payment Gateways ( Old )","slug":"payment-gateways","parent":0},{"id":59,"count":3,"name":"Tools","slug":"tools","parent":0},{"id":11,"count":2,"name":"Translation","slug":"translation","parent":0},{"id":12,"count":6,"name":"Troubleshooting","slug":"troubleshooting","parent":0}]

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading
Loading