Skip to content

Commit 59d0006

Browse files
authored
Merge pull request #1662 from themegrill/add/themegrill-qa
Add - Themegrill QA Setup for E2E Testing
2 parents e76186a + 0391610 commit 59d0006

58 files changed

Lines changed: 16996 additions & 10 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.distignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Gruntfile.js
99
webpack.config.js
1010
tests/
1111
node_modules/
12+
playwright-report/
13+
test-results/
1214
none
1315
package-lock.json
1416
package.json
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
name: Copilot review on comment
22

33
on:
4+
pull_request_target:
5+
types: [opened]
46
issue_comment:
57
types: [created]
68

79
jobs:
810
review:
9-
uses: wpeverest/.github/.github/workflows/copilot-review-on-comment.yml@master
11+
uses: themegrill/.github/.github/workflows/copilot-review-on-comment.yml@master
1012
secrets:
1113
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}

.github/workflows/evf-PR-test.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,16 @@ jobs:
3131
git config --global user.email "$MY_EMAIL"
3232
git config --global user.name "$MY_USERNAME"
3333
34-
- name: Use Node.js 12.x
34+
# Node 20, not 12: @playwright/test (a devDependency since the E2E suite
35+
# landed) declares `engines.node >= 20`, and package.json now declares the
36+
# same minimum. npm 6 only WARNs on an engine mismatch rather than failing,
37+
# so Node 12 installed fine — but it left CI running a Node the project no
38+
# longer claims to support. 20.x is what .github/workflows/pr-build-zip.yml
39+
# already uses.
40+
- name: Use Node.js 20.x
3541
uses: actions/setup-node@v2
3642
with:
37-
node-version: 12.x
43+
node-version: 20.x
3844

3945
- name: Setup PHP v7.4
4046
uses: shivammathur/setup-php@v2

.github/workflows/pr-build-zip.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Build Testable ZIP
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened, ready_for_review]
6+
branches: [develop]
7+
workflow_dispatch:
8+
9+
jobs:
10+
zip:
11+
uses: themegrill/.github/.github/workflows/pr-build-zip.yml@master
12+
with:
13+
node-version: '20.x'
14+
php-version: '8.2'
15+
package-manager: npm
16+
# `npm run build` runs this repo's own bin/build-zip.sh, which is a
17+
# fully self-contained release script: it does its own
18+
# `npm install --legacy-peer-deps`, its own `composer install` (with a
19+
# PHP-version fix pending in a separate PR to that script), its own JS
20+
# build, and its own rsync+zip -- producing everest-forms.zip at the
21+
# repo root already. This workflow's own install/composer steps would
22+
# just be redundant, wasted work duplicating what the script already
23+
# does, so they're skipped/no-op'd here rather than fighting it.
24+
# Can't skip this like composer-install: `npm run build` is literally
25+
# `cross-env ./bin/build-zip.sh`, and cross-env has to already be
26+
# resolvable from node_modules/.bin before that command can even
27+
# start -- build-zip.sh's own internal npm install happens too late
28+
# to help with that (confirmed for real: skipping this outright hit
29+
# "cross-env: not found"). --legacy-peer-deps for the same reason as
30+
# documented on the build-zip.sh fix -- @ajna/pagination's peer
31+
# dependency conflict blocks a plain `npm ci` here too.
32+
install-command: npm ci --legacy-peer-deps
33+
composer-install: false
34+
build-command: npm run build
35+
zip-glob: 'everest-forms.zip'
36+
artifacts-bucket: themegrill-pr-artifacts
37+
public-base-url: https://themegrill-pr-artifacts.s3.amazonaws.com
38+
s3-region: us-east-1
39+
secrets:
40+
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
41+
ARTIFACTS_KEY: ${{ secrets.ARTIFACTS_KEY }}
42+
ARTIFACTS_SECRET: ${{ secrets.ARTIFACTS_SECRET }}

.github/workflows/qa-suite.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Written by `/claudegrill:setup`. Safe to edit — it is a plain caller.
2+
#
3+
# THIS IS THE ONLY PR CHECK MOST PRODUCTS NEED. No ANTHROPIC_API_KEY, no agent,
4+
# runner minutes only.
5+
#
6+
# It works without AI because the developer already wrote the spec: they ran
7+
# /claudegrill:verify-fix locally, write-spec added a @fresh spec to their
8+
# branch, and they committed it with the fix. By the time CI sees the PR the
9+
# regression is already a deterministic assertion.
10+
#
11+
# ONE job, on pull requests only. Nothing runs on a schedule: the team's model is
12+
# a local /claudegrill:verify-fix while the fix is being written, and the e2e
13+
# suite on the PR. No cron, no nightly, no WordPress-core watcher.
14+
#
15+
# `scope: changed` narrows a run to the areas the diff maps to. That is safe by
16+
# construction — a changed file matching no `area_paths` pattern in
17+
# .themegrill-qa/suite.json falls back to the full tier, so an unmapped change
18+
# costs runner time, never coverage.
19+
#
20+
# Worth knowing, since nothing else runs the suite now: a spec whose area is
21+
# never touched by any PR will not execute. Set `scope: full` below if you would
22+
# rather every PR run the whole @fresh tier.
23+
24+
name: QA suite
25+
26+
on:
27+
pull_request:
28+
types: [opened, synchronize, reopened, ready_for_review]
29+
workflow_dispatch:
30+
31+
jobs:
32+
# The only check. Scoped, fast, runs on every PR including drafts.
33+
pr:
34+
uses: ThemeGrill/claudegrill/.github/workflows/suite.yml@main
35+
with:
36+
product_slug: everest-forms
37+
product_type: plugin
38+
scope: changed
39+

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,10 @@ phpunit-watcher.yml
5454
/release/
5555

5656
/.idea/
57+
58+
# claudegrill local credentials
59+
.themegrill-qa/.env.local
60+
61+
# playwright run artefacts
62+
playwright-report/
63+
test-results/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
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}]

.themegrill-qa/.docs-cache/_wp-json_wp_v2_docs_per_page_100_page_1__fields_id_slug_link_title_content_doc_category.txt

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

.themegrill-qa/.docs-cache/_wp-json_wp_v2_docs_per_page_100_page_2__fields_id_slug_link_title_content_doc_category.txt

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)