ci: plugin-agnostic PR checks and package-then-release pipeline
version-changelog / version-changelog (pull_request) Successful in 50s
plugin-checks / package (pull_request) Failing after 1m50s
plugin-checks / validate (pull_request) Failing after 31m29s
plugin-checks / phpunit (pull_request) Canceled after 33m2s

- plugin-checks workflow: shopware-cli validate, package + built-JS assertion, phpunit
- release: validate, package from the merge commit, validate the zip, create the release
  via the Gitea API, publish the same zip to the Composer registry
- scripts/protect-main.sh sets required status checks via tea api
- bump to 0.1.0

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
haylanandClaude Bot committed 2026-10-03 23:28:15 +02:00
1 parent 8efaef2042
commit a551034442
7 files changed
+212 -66

No files matched your search

+6 -5
View File
@@ -31,13 +31,14 @@ on branches `research/shopware-guideline-checklist`, `research/shopware-cli-ci-b
## 3. Pipeline
### PR workflow (`.gitea/workflows/pr.yml`, replaces `pr-version-check.yml`)
### PR workflows
Jobs (all required checks on `main`):
1. `version-changelog` - unchanged logic (version bump + changelog heading). Keep this job/workflow name so the existing required context `version-changelog / version-changelog (pull_request)` keeps working, or update protection when renamed.
2. `validate` - install `shopware-cli`, `extension validate .` (hard gate, no `|| true`).
3. `package` - `extension package` with `--git-commit "$GITHUB_SHA"`, then assert the zip contains built admin JS (`Resources/public/administration/js`) when an admin entry exists.
4. `phpunit` - `composer create-project shopware/production` (6.6.x) + MariaDB service, symlink plugin, install/activate, run phpunit. PHP 8.3.
`pr-version-check.yml` (job `version-changelog`) is unchanged apart from `permissions:`; its name keeps the existing required context. New `plugin-checks.yml`:
1. `validate` - install `shopware-cli`, `extension validate .` (hard gate, no `|| true`).
2. `package` - `extension package` with `--git-commit "$GITHUB_SHA"`, then assert the zip contains built admin JS (`Resources/public/administration/js`) when an admin entry exists.
3. `phpunit` - `composer create-project shopware/production` (6.6.x) + MariaDB service, copy the plugin into `custom/plugins`, install/activate, run phpunit. PHP 8.3.
### Release workflow (`.gitea/workflows/release.yml`)