Adds a local build task and a CI artifact build on merge to main.
Local build — composer build
Runs bin/build-zip.sh, producing dist/<slug>-<version>.zip ready to upload via wp-admin → Plugins → Add New → Upload Plugin.
Single top-level unsupervised-schedular/ folder
Ships runtime only: main file, uninstall.php, src/, templates/, assets/, plus a production (no-dev) optimized Composer autoloader
Excludes tests/, docs/, composer.json, tooling configs, and all dev dependencies
Version is read from the plugin header, so the zip name tracks releases
Verified: 27 plugin classes present in the optimized classmap; dev deps and test/config files confirmed absent.
CI artifact on merge to main
New build job in .gitea/workflows/ci.yml:
Runs only on push to main (i.e. after a merge)
needs: [lint, static-analysis, test, no-debug] — builds only once quality gates pass
Runs composer build and uploads dist/*.zip via actions/upload-artifact@v3, named unsupervised-schedular-<version>
Also ignores build/ and dist/.
Caveats
Assumes the Gitea runner image has zip (catthehacker ubuntu-latest does) and that Actions artifacts are enabled on the instance. If artifacts are disabled, we can switch to attaching the zip to a Gitea release on tag push instead.
Adds a local build task and a CI artifact build on merge to `main`.
## Local build — `composer build`
Runs `bin/build-zip.sh`, producing `dist/<slug>-<version>.zip` ready to upload via **wp-admin → Plugins → Add New → Upload Plugin**.
- Single top-level `unsupervised-schedular/` folder
- Ships runtime only: main file, `uninstall.php`, `src/`, `templates/`, `assets/`, plus a **production (no-dev) optimized** Composer autoloader
- Excludes `tests/`, `docs/`, `composer.json`, tooling configs, and all dev dependencies
- Version is read from the plugin header, so the zip name tracks releases
Verified: 27 plugin classes present in the optimized classmap; dev deps and test/config files confirmed absent.
## CI artifact on merge to main
New `build` job in `.gitea/workflows/ci.yml`:
- Runs only on **push to `main`** (i.e. after a merge)
- `needs: [lint, static-analysis, test, no-debug]` — builds only once quality gates pass
- Runs `composer build` and uploads `dist/*.zip` via `actions/upload-artifact@v3`, named `unsupervised-schedular-<version>`
Also ignores `build/` and `dist/`.
## Caveats
- Assumes the Gitea runner image has `zip` (catthehacker `ubuntu-latest` does) and that **Actions artifacts are enabled** on the instance. If artifacts are disabled, we can switch to attaching the zip to a Gitea release on tag push instead.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- bin/build-zip.sh + `composer build`: stage runtime files only, generate a
production (no-dev) optimized autoloader, and emit
dist/<slug>-<version>.zip with a single top-level plugin folder, ready to
upload via wp-admin. Tests, tooling configs, docs, and dev dependencies
are excluded; version is read from the plugin header.
- CI `build` job: on push to main (post-merge), after lint/static-analysis/
test/no-debug pass, runs the build and uploads the zip via
actions/upload-artifact.
- Ignore build/ and dist/.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a local build task and a CI artifact build on merge to
main.Local build —
composer buildRuns
bin/build-zip.sh, producingdist/<slug>-<version>.zipready to upload via wp-admin → Plugins → Add New → Upload Plugin.unsupervised-schedular/folderuninstall.php,src/,templates/,assets/, plus a production (no-dev) optimized Composer autoloadertests/,docs/,composer.json, tooling configs, and all dev dependenciesVerified: 27 plugin classes present in the optimized classmap; dev deps and test/config files confirmed absent.
CI artifact on merge to main
New
buildjob in.gitea/workflows/ci.yml:main(i.e. after a merge)needs: [lint, static-analysis, test, no-debug]— builds only once quality gates passcomposer buildand uploadsdist/*.zipviaactions/upload-artifact@v3, namedunsupervised-schedular-<version>Also ignores
build/anddist/.Caveats
zip(catthehackerubuntu-latestdoes) and that Actions artifacts are enabled on the instance. If artifacts are disabled, we can switch to attaching the zip to a Gitea release on tag push instead.🤖 Generated with Claude Code