Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[epic][plugin] Implement Stage Plugins #5367

Open
4 of 14 tasks
t-kikuc opened this issue Nov 26, 2024 · 1 comment
Open
4 of 14 tasks

[epic][plugin] Implement Stage Plugins #5367

t-kikuc opened this issue Nov 26, 2024 · 1 comment
Assignees
Labels
epic kind/enhancement New feature or request

Comments

@t-kikuc
Copy link
Member

t-kikuc commented Nov 26, 2024

What would you like to be added:

Support the following stages in the plugin architecture.

Crossing-tasks:

  • Piped) Define and handle skipOn options
  • Piped&Plugin) Add Notifier methods (WaitApproval)
  • Handling Skip and Approve actions on UI
    • Piped&Plugin) Handle commands of skipStage and approveStage (Analysis, WaitApproval)
    • UI&model) Add skippable flag to PipelineStage and switch by it on UI (Analysis)
    • UI&model) Add approvable flag to PipelineStage and switch by it on UI (WaitApproval)

Note: We've not determined how to support the SCRIPT_RUN Stage in the plugin architecture.

Why is this needed:

Stages will also become plugins, not built-in code.
That will extend the flexibility of pipelines.

@t-kikuc
Copy link
Member Author

t-kikuc commented Jan 30, 2025

[ ] Piped&Plugin) Handle commands of skipStage and approveStage (Analysis, WaitApproval)
[ ] UI&model) Add skippable flag to PipelineStage and switch by it on UI (Analysis)
[ ] UI&model) Add approvable flag to PipelineStage and switch by it on UI (WaitApproval)

The overview of handling SkipStage and ApproveStage will be like this:

Image

  • Add skippable and approvable flags in the model PipelineStage.
  • Set them true in BuildPipelineSyncStages() of Analysis and WaitApproval stage plugins.
  • Define and use ListStageCommands() and ReportStageCommandHandled() APIs from a plugin to Piped to handle commands on the plugin side.
  • On UI, show the Skip button if the stage is skippable, and show the Approve dialog if the stage is approvable

This architecture enables other plugins to use SkipStage and ApproveStage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic kind/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant