Repository navigation
Add Codex plugin release packaging script and workflow - #261
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces a new Dart script at tool/build_codex_plugin.dart to automate building, verifying, and releasing the Dart and Flutter Codex plugin zip, while updating .gitignore to exclude the dist/ directory. The review feedback focuses on enhancing the script's robustness and concurrency. It is recommended to wrap external process executions (zip, gh, and git) in try-catch blocks to gracefully handle ProcessException when these command-line tools are not installed. Additionally, the synchronous Process.runSync call within the asynchronous polling loop of _waitForRun should be replaced with the asynchronous Process.run to avoid blocking the Dart event loop.
johnpryan
approved these changes
Nov 3, 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.
Adds a standalone script (
tool/build_codex_plugin.dart) and GitHub Actions workflow (.github/workflows/release_codex_plugin.yaml) to build and package thedart-flutterCodex plugin zip for the OpenAI plugin submission portal.What this changes
tool/build_codex_plugin.dart: A self-contained Dart script (using onlydart:ioanddart:convert, with no newpubspec.yamldependencies) that:versionmatching--tag,interface.shortDescription<= 30 characters, existing branding assets, and trackedskills/<skill>/SKILL.mddirectories)..codex-plugin/plugin.jsonin a temporary staging directory withmcpServersand MCP references removed (since OpenAI only accepts local stdio MCP servers from allowlisted partners) and setsextensions.com.openai.publication.release_notesfrom skill changes since the previouscodex-plugin-v*tag.skills/(git ls-files) plus the referenced branding assets and buildsdist/<name>-codex-<version>.zip.--release(and--release --dry-run) to verify a cleanmainbranch, create and push thecodex-plugin-v<version>tag, wait for the CI workflow run viagh, and download the built zip artifact todist/..github/workflows/release_codex_plugin.yaml:codex-plugin-v*tags,workflow_dispatch, and pull requests touching.codex-plugin/,assets/,skills/, ortool/build_codex_plugin.dart.dart format), runs static analysis (dart analyze --fatal-infos), and builds the release zip.dart-flutter-codex-<version>.zipas a workflow artifact (30-day retention) on tag and manual runs.codex-releaseif a tag-triggered release build fails..gitignore: Ignoresdist/.