diff --git a/.github/logos/testbench.svg b/.github/logos/testbench.svg
new file mode 100644
index 0000000..1b7423b
--- /dev/null
+++ b/.github/logos/testbench.svg
@@ -0,0 +1 @@
+
diff --git a/README.md b/README.md
index cffddd5..604b553 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,7 @@ All of it is data. None of it ships in the binary.
|
| **Statamic** | `6` `5` `4` `3` | `statamic/cms` in composer.json |
|
| **Symfony** | `8` `7` `6` `5` `4` | `symfony.lock` file or `symfony/framework-bundle` in composer.json |
|
| **Tempest** | `3` | `tempest` file or `tempest/framework` in composer.json |
+|
| **Testbench** | `11` | `testbench.yaml` file (a Laravel package served from its Orchestra Testbench workbench) |
|
| **TYPO3** | `14` `13` `12` `11` `10` | `typo3/cms-core` in composer.json or `public/typo3` directory |
|
| **Winter CMS** | `1` | `winter/wn-system-module` in composer.json |
|
| **WordPress** | `7` `6` `5` | `wp-login.php` file or `wp-config.php` file |
diff --git a/frameworks/index.json b/frameworks/index.json
index 1ee55e7..78d3f89 100644
--- a/frameworks/index.json
+++ b/frameworks/index.json
@@ -136,6 +136,15 @@
"detect": [
{"composer": "yiisoft/yii2"}
]
+ },
+ {
+ "name": "testbench",
+ "label": "Testbench",
+ "versions": ["11"],
+ "latest": "11",
+ "detect": [
+ {"file": "testbench.yaml"}
+ ]
}
],
"packages": [
diff --git a/frameworks/testbench.svg b/frameworks/testbench.svg
new file mode 100644
index 0000000..aeb9032
--- /dev/null
+++ b/frameworks/testbench.svg
@@ -0,0 +1 @@
+
diff --git a/frameworks/testbench/11.yaml b/frameworks/testbench/11.yaml
new file mode 100644
index 0000000..2fe366c
--- /dev/null
+++ b/frameworks/testbench/11.yaml
@@ -0,0 +1,47 @@
+# A Laravel package developed with Orchestra Testbench and served from its
+# workbench. Testbench boots its own Laravel skeleton from vendor/ and takes its
+# environment from testbench.yaml (SQLite unless the package says otherwise), so
+# lerd neither writes an env file nor wires services for it.
+name: testbench
+version: "11"
+label: Testbench
+color: "#475569"
+public_dir: vendor/orchestra/testbench-core/laravel/public
+
+# The skeleton finds the package's vendor through TESTBENCH_WORKING_PATH, which
+# testbench serve sets; testbench removes the vendor symlink it would otherwise use.
+nginx:
+ fastcgi_params:
+ TESTBENCH_WORKING_PATH: "{{root}}"
+
+php:
+ min: "8.3"
+ max: "8.5"
+
+detect:
+ - file: testbench.yaml
+
+composer: true
+npm: auto
+console: vendor/bin/testbench
+
+logs:
+ - path: vendor/orchestra/testbench-core/laravel/storage/logs/*.log
+ format: monolog
+
+setup:
+ # The skeleton's public/index.php reads the package's testbench.yaml from its
+ # bootstrap cache, which testbench writes when it discovers packages.
+ - label: Discover packages
+ command: php vendor/bin/testbench package:discover --ansi
+ default: true
+ - label: Build the workbench
+ command: php vendor/bin/testbench workbench:build --ansi
+ default: false
+
+commands:
+ - name: workbench:build
+ label: Build the workbench
+ command: php vendor/bin/testbench workbench:build --ansi
+ output: silent
+ icon: hammer