This guide explains how to release your WordPress plugin using different deployment modes.
The release workflow automatically detects the deployment mode based on your git tag:
git tag v2.0.8-dry-run
git push origin v2.0.8-dry-runWhat happens:
- ✅ Creates GitHub release with zip file
- ✅ Runs deployment in dry-run mode
- ✅ Shows what would be deployed
- ❌ No actual SVN operations
- ❌ No changes made to any repository
git tag v2.0.8-test
git push origin v2.0.8-testWhat happens:
- ✅ Creates GitHub release with zip file
- ✅ Deploys to test SVN repository
- ✅ Uses test credentials
- ✅ Marks commits as "TEST:"
- ❌ No changes to production WordPress.org
git tag v2.0.8
git push origin v2.0.8What happens:
- ✅ Creates GitHub release with zip file
- ✅ Deploys to WordPress.org marketplace
- ✅ Uses production credentials
- ✅ Live deployment to users
WP_SVN_USERNAME: Your WordPress.org SVN usernameWP_SVN_PASSWORD: Your WordPress.org SVN passwordTEST_SVN_USERNAME: Your test SVN username (for test mode)TEST_SVN_PASSWORD: Your test SVN password (for test mode)
WP_PLUGIN_SLUG: Your WordPress.org plugin slugWP_SVN_URL: Your WordPress.org SVN repository URLTEST_SVN_URL: Your test SVN repository URLWP_ASSETS_DIR: Directory containing plugin assets
- Update version in
siteimprove/siteimprove.php - Update changelog in
siteimprove/readme.txt - Commit and push your changes
- Test locally with
./scripts/test-deploy.sh
# Dry run to validate everything
git tag v2.0.8-dry-run
git push origin v2.0.8-dry-run
# Test with actual SVN operations
git tag v2.0.8-test
git push origin v2.0.8-test# Live deployment to WordPress.org
git tag v2.0.8
git push origin v2.0.8- Go to Actions tab in your repository
- Watch the workflow run
- Check the logs for any issues
- Verify the deployment was successful
- Dry Run:
v2.0.8-dry-run- Validate files and process - Test:
v2.0.8-test- Test with real SVN operations - Production:
v2.0.8- Deploy to WordPress.org
- Test:
v2.0.8-test- Quick validation - Production:
v2.0.8- Deploy to WordPress.org
- ✅ Files are prepared correctly
- ✅ Version is updated
- ✅ No errors in the process
- ✅ Deployment preview looks correct
- ✅ Files are committed to test repository
- ✅ Tag is created in test repository
- ✅ Commit message starts with "TEST:"
- ✅ All files are present
- ✅ Files are committed to WordPress.org
- ✅ Tag is created on WordPress.org
- ✅ Plugin appears on WordPress.org
- ✅ Version is available for download
"Workflow not triggered"
- Ensure tag matches pattern:
v*,v*-test, orv*-dry-run - Check that tag was pushed to the repository
"SVN authentication failed"
- Verify credentials are set correctly
- Check that credentials have write access
- For test mode, ensure test repository exists
"Files not found"
- Ensure
siteimprove/directory exists - Check that main plugin file is present
- Verify file paths in the action
"Version already exists"
- Use a different version number
- Delete existing tag if needed
- Check WordPress.org for existing versions
| Tag Pattern | Mode | SVN Operations | Credentials | Purpose |
|---|---|---|---|---|
v2.0.8-dry-run |
Dry Run | ❌ None | Production | Validate files |
v2.0.8-test |
Test | ✅ Test repo | Test | Test deployment |
v2.0.8 |
Production | ✅ WordPress.org | Production | Live release |
This approach ensures safe, controlled releases with multiple validation steps before going live.