Skip to content

Add CI for submitting plugins to Marketplace on merge#548

Draft
niekert wants to merge 4 commits intoframer:mainfrom
niekert:main
Draft

Add CI for submitting plugins to Marketplace on merge#548
niekert wants to merge 4 commits intoframer:mainfrom
niekert:main

Conversation

@niekert
Copy link
Member

@niekert niekert commented Feb 5, 2026

Description

This PR adds new Github action workflows:

Submit on Merge

  • Runs when a PR is merged and the Submit on merge label is added to a PR
  • Extracts the Changelog from the PR body
  • Submits a new version of a Plugin for each plugin that has changed files

Submit Plugin

  • Manually callable with a pluginPath and changelog input
  • Submits a new version of the given plugin to the marketplace
  • Can be invoked from another repo (eg workshop checking out that workflow)
  • Or to submit a plugin if you forgot to add the label on merge

Check PR body

  • Was already checking if PR body was not empty
  • Now checks if PR has a changelog section when "Submit on merge" label is present
  • NOTE: The PR template was updated to require a changelog heading by default.

Pre merge Checklist

  • Set up development and production environments in framer/plugins CI and configure secrets and env variables
  • Change development to production in CI jobs after QA
  • Update Slack workflow to post to #team-plugins instead of #test

Testing

Please test in the fork to test the PR workflow: niekert/plugins.

LMK when you start QA I will give you full repo permissions.

  • Manually submitting a plugin
    • Go to https://github.com/niekert/plugins/actions/workflows/submit-plugin.yml
    • Open the "Run workflow" panel
    • Use plugins/csv-import for the plugin path
    • Fill in a description
    • KEEP DEVELOPMENT selected (note: only csv-import is currently published on development)
    • Run the job and observe
    • A message should be posted in the #test slack channel when completed. Test the links in the slack message.
  • Publishing on merge
    • Check out the niekert/plugins fork locally and create a new branch
    • Make some changes in the CSV import plugin and in another random plugin
    • Notice CI is green
    • Add the "Submit on merge" label
    • Wait for CI to be green again
    • Remove the "### Changelog" Section from the PR
    • Notice CI fails now
    • celebrate and bring back "### Changelog" section
    • Merge the PR when all is green
    • View the Submit On Merge workflow
    • It will submit the csv-import plugin succesfully
    • It will fail for the other plugin (because it doesn't exist on dev)
    • You should see a succesful and an error message on #test in slack.
    • please remove the commit from main after the merge

github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'Submit on merge')
# FIXME: Should be production
environment: development
Copy link
Member Author

@niekert niekert Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self to fix before merging.

ERROR_WEBHOOK_URL: ${{ secrets.ERROR_WEBHOOK_URL }}
RETOOL_URL: ${{ secrets.RETOOL_URL }}
# FIXME: Should be production
FRAMER_ENV: development
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should fix

const SubmissionResponseSchema = v.object({
version: v.number(),
// FIXME: THIS SHOULD BE DEPLOYED:
// SEE: https://github.com/framer/creators/pull/2487/files
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self: remove the fallback

@niekert niekert force-pushed the main branch 2 times, most recently from 2975293 to cfb070c Compare February 5, 2026 14:03
@niekert
Copy link
Member Author

niekert commented Feb 5, 2026

@cursor review

@niekert
Copy link
Member Author

niekert commented Feb 5, 2026

/gemini review

@niekert
Copy link
Member Author

niekert commented Feb 5, 2026

@codex review

@chatgpt-codex-connector
Copy link

To use Codex here, create a Codex account and connect to github.

@niekert
Copy link
Member Author

niekert commented Feb 5, 2026

@codex review

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Comment @cursor review or bugbot run to trigger another review on this PR

github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'Submit on merge')
# FIXME: Should be production
environment: development
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Development environment hardcoded instead of production

High Severity

The workflow has environment: development and FRAMER_ENV: development hardcoded with FIXME comments. The PR notes explicitly state "note to self to fix before merging." If merged as-is, all plugins submitted via the "Submit on merge" flow would go to the development environment instead of production.

Additional Locations (1)

Fix in Cursor Fix in Web

package.json
yarn.lock
.yarnrc.yml
.yarn
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sparse checkout missing required .tool-versions file

High Severity

The sparse checkout configuration does not include .tool-versions, but the Setup Node.js step on line 51 requires this file via node-version-file: .tool-versions. The workflow will fail because the file won't exist after the sparse checkout completes.

Fix in Cursor Fix in Web

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cfb070c03c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@niekert niekert force-pushed the main branch 8 times, most recently from efb8561 to 1abd9e6 Compare February 6, 2026 16:13
- Add GitHub Actions workflows for plugin submission
- Add scripts for validating PR body and submitting plugins
- Add test:scripts command and related dev dependencies
- Update PR template
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant