diff --git a/README.md b/README.md index cabb074..ff54e93 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,23 @@ To avoid rate limits or improve reliability: 1. In your Gitea instance, go to **Settings → Applications** and generate a token. 2. Paste it into the plugin settings screen under **Gitea API Token**. +## Building a Release + +Releases are automated via GitHub Actions. To cut a new release: + +1. Bump `PROJECTS_PORTFOLIO_VERSION` and the plugin header `Version:` in `projects-portfolio.php`. +2. Commit and push to `main`. +3. Tag the release commit: `git tag -a v1.1.0 -m "v1.1.0 — short summary"`. +4. Push the tag: `git push origin v1.1.0`. + +The `.github/workflows/release.yml` workflow runs and: + +- Builds `projects-portfolio-v.zip` containing only the runtime files (`projects-portfolio.php`, `admin/`, `assets/`, `includes/`, `languages/`, `templates/`, `README.md`, `LICENSE`). +- Uploads the zip as a workflow artifact. +- Creates (or updates) the matching GitHub Release with the zip attached. + +Dev-only paths (`composer.json`, `composer.lock`, `vendor/`, `tests/`, `plans/`, `specs/`, `.github/`, `.gitignore`, `.vscode/`, `.claude/`) are intentionally excluded. + ## How to Zip the Plugin for GitHub Releases When attaching the plugin to a GitHub release: