GitHub repositories and automated releases
On this page
The update server reads GitHub releases. A repository can contain multiple packages:
plugins/<slug>/<slug>.php
themes/<slug>/style.css
bin/build.sh
.github/workflows/release.ymlUse the build scripts and release workflow in FluxWP as a reference.
Publish a version
- Increase the package’s
Version:header and version constant, if present. - Add release notes under the version heading in the package’s
CHANGELOG.md. - Submit the change through a branch and PR. After review and merge to main, Actions builds
dist/<slug>.zip, creates a<slug>-v<version>release and attaches the ZIP.
With UPDATE_WEBHOOK_SECRET configured, the workflow refreshes the server cache. The update then appears in WordPress.
Rules
A hyphenated version such as 1.3.0-beta.1 is a prerelease for beta-channel sites. A version decrease fails the release. Requires Plugins: declares dependencies installed by FluxWP Panel. Use .distignore in the package directory to exclude files; Git metadata, node_modules and tests are excluded by default.
Manual builds
Use Actions → Package release → Run workflow for manual releases, optionally selecting one package. For a local ZIP, run bin/build.sh plugins/flx-example. New packages belong under plugins/<slug>/ or themes/<slug>/ and are discovered from releases when the repository is enabled on the server.
Keep tokens out of the repository. The GitHub token belongs in the update server panel; UPDATE_WEBHOOK_SECRET belongs in GitHub Actions secrets.