Upload plugin as part of release workflow#1227
Merged
Dekkonot merged 7 commits intorojo-rbx:masterfrom Feb 14, 2026
Merged
Conversation
boatbomber
approved these changes
Feb 14, 2026
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.
This adds a script for uploading the plugin to Roblox as part of the release workflow. This is motivated by the fact that Roblox hides uploads by non-ID verified people by default, and group assets use the ID verification of whoever uploaded them. So, it's not sustainable for me to just manually upload them because I am not ID verified on Roblox.
We can get around this by just... having an ID verified user upload it every time. We needed to automate uploading the plugin anyway, so it's been moved to the release workflow. There is not a way to do this directly, as Roblox still does not have a way to upload plugins with Open Cloud. However, there is a way around it. With their Cloud Luau Execution feature, we can use
AssetService:CreateAssetVersionAsyncto upload the plugin in-engine.This adds a
UploadDetails.jsonto the root of the plugin because it's the most convenient way to pass information into Roblox. I would like these details to be configurable via variables rather than hard-coded but that technology does not exist yet (Rojo able to set values based on the environment when?). It runs whenever the release workflow is ran, and skips pre-release versions.To use this, someone who is ID verified (cc @boatbomber) will need to make an Open Cloud API key on Roblox's website with the following characteristics:
luau-execution-sessions:readandluau-execution-sessions:write(we need it to create a new task, and to read the results of the one created)Battlegroundbecause Roblox still doesn't let you configure scope by anything other than name.PLUGIN_UPLOAD_TOKEN