Skip to content

ci: WordPress.org SVN auto-deploy on v* tags#24

Merged
odanree merged 2 commits into
mainfrom
ci/wp-org-svn-deploy
Jun 10, 2026
Merged

ci: WordPress.org SVN auto-deploy on v* tags#24
odanree merged 2 commits into
mainfrom
ci/wp-org-svn-deploy

Conversation

@odanree

@odanree odanree commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

Wires the GitHub repo to auto-publish to the newly-approved WordPress.org plugin directory entry (https://wordpress.org/plugins/odr-image-optimizer/), so future releases are a tag-push instead of a manual SVN dance.

  • .github/workflows/deploy-to-wp-org.yml — triggers on v* tags (matches the existing release.yml trigger). Uses 10up/action-wordpress-plugin-deploy@stable to sync main → SVN trunk/, create the matching SVN tag, and sync .wordpress-org/ → SVN's sibling assets/. The action reads the SVN tag name from Stable tag: in readme.txt, so the git v prefix stays git-only.
  • .distignore rewrite — adds the dev artifacts the old version missed: .lla-* indexer files, .venv/, phpstan.neon, phpunit.xml, SUBMISSION.md, *.zip build artifacts. These previously had to be excluded by hand when building the manual upload zip.
  • .wordpress-org/README.md — documents the required banner/icon/screenshot filenames so the listing page can be populated later by dropping files into that folder.
  • CLAUDE.md — repo-local context for future sessions: release flow, compliance constraints (backups must live under wp_upload_dir()/odr-image-optimizer/backups/, not .backups/ — the cause of the April rejection), local-dev quirks.

Action items before the next release

The workflow needs two repo secrets before it can do anything:

Set them under Settings → Secrets and variables → Actions → New repository secret.

Releasing 1.0.8 once SVN access is live

After this PR is merged and the secrets are set:

```bash
git checkout main && git pull
git tag v1.0.8 && git push origin v1.0.8
```

Both release.yml (GitHub Release) and deploy-to-wp-org.yml (SVN push) will run. WP.org's directory note says it can take up to 72h for search results to update after the first commit.

Test plan

  • Workflow YAML lints clean (no gh workflow run yet — will fire on first v* tag push).
  • .distignore includes every dev file currently in the repo root that shouldn't ship; verified against ls -A output.
  • CLAUDE.md highlights the backup-path compliance rule so future edits don't reintroduce the .backups/ regression.

odanree added 2 commits June 10, 2026 04:08
Plugin Check flagged the previous 6.9 value as outdated against current
WP. No code changes — header metadata only.
Adds a GitHub Actions workflow that pushes tagged releases to the
WordPress.org SVN repo using 10up/action-wordpress-plugin-deploy.
Triggered on v* tags; expects WPORG_SVN_USERNAME / WPORG_SVN_PASSWORD
repo secrets.

Also rewrites .distignore to cover dev artifacts that were missing
(.lla-* indexer files, .venv, phpstan.neon, phpunit.xml, SUBMISSION.md,
*.zip build artifacts), creates a .wordpress-org/ folder with a README
documenting the expected banner/icon/screenshot filenames, and adds a
CLAUDE.md with the release flow and the compliance constraint on
backup file locations (so we don't regress on the .backups/ rejection).
@odanree odanree merged commit dc2678c into main Jun 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant