Repository navigation
Rebuild paid plugins in Satis on every push - #559
Merged
Merged
Conversation
A push only refreshed the plugin's metadata, so new commits on main and new branches weren't installable until someone cut a release or clicked Sync to Satis. Satis publishes every branch as dev-<branch>, so a push now queues a build of that plugin. The build waits a minute and is unique per plugin, so a burst of pushes shares one build. Free plugins and drafts are skipped, which matches when plugins enter Satis today. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A push to a plugin's repo only refreshed its metadata on the site. Satis builds only ran on a published release, the Sync to Satis button, or
satis:build. Satis publishes every branch asdev-<branch>, but that only helps if a build actually runs. So new commits on main and new WIP branches weren't installable until someone cut a release.You can see it on plugins.nativephp.com right now.
mainon mobile-firebase and mobile-biometrics has commits from 3 September that were never published. Four branches on mobile-geolocation, mobile-firebase and mobile-biometrics are missing completely.Now a push from either webhook (the per-repo one or the GitHub App) queues a new
BuildPluginInSatisjob for that plugin. The job waits a minute and is unique per plugin until it starts, so a burst of pushes shares one build. Satis reads the repo when it builds, so that one build picks up everything. Deleted branches drop out on the next build too.Things to check:
isOfficial()is a one-line change inPlugin::queueSatisRebuild().SyncPluginReleasesbuilds straight away, and the tag's push queues another one a minute later. That's harmless, just redundant.php artisan satis:buildonce catches everything up straight away.Tests: the targeted webhook and Satis tests pass (61). The full suite passed (2025, 1 skipped for missing local config) before a final small change that added the draft check. I re-ran the targeted tests after that change.
🤖 Generated with Claude Code