Convert Pipeline Editor to WebIDE/VSCode plugin
Context
Today we have the Pipeline Editor feature that can be used to edit the .gitlab-ci.yml file of a project or any files with .gitlab-ci.yml suffix. The Pipeline Editor is a very powerful feature that helps pipeline authors making guided changes to the pipeline configurations. It has a lot of useful features:
- lints and validates the configuration
- allows to simulate a pipeline creation, hence validating rules.
- provides syntax autosuggestions
- allows to see the fully merged YAML configuration
- allows to visualize the pipeline structure
With CI/CD Components & Catalog (&7462) we are also thinking of integrating the CI/CD catalog in the Pipeline Editor to provide a better experience when searching, discovering and learning about available CI components.
The Pipeline Editor was introduced to provide a more enhanced and pipeline-focused experience to developers editing CI configurations, that didn't exist with the simple web editor.
Problem
- The Pipeline Editor works only with
*.gitlab-ci.ymlfiles and it doesn't work with other YAML files which could be included by the.gitlab-ci.yml. - If you modify the
ci_config_pathin the project settings to point to a different location or file name, the Pipeline Editor may not work as expected. - It doesn't support CI component's
template.ymlfiles. - It's not possible to toggle "pipeline editor" functionalities on arbitrary YAML files.
- Users have to switch IDEs all the time in order to benefit from some functionalities from the Pipeline Editor.
- We are maintaining a separate editor while we make enhancements to the WebIDE. These enhancements are likely not going to affect the pipeline editor experience.
- We didn't need a "text editor" in the first place but a set of additional functionalities to enhance the text editing process for pipeline configurations. Really what we needed was a toolkit/plugin that provides additional tools.
Idea / Proposal
Extract the Pipeline Editor and make it part of the GitLab Workflow VSCode plugin. Research whether this plugin can run as part of the WebIDE in order to have a single IDE with enhanced capabilities for pipelines.
We would use the WebIDE as SSoT for editing source files. On the editor we can toggle on/off the pipeline editor functionalities (like Cmd + shift + P commands) and that would work on WebIDE as well as VSCode.
Users are asking to have better functionality when editing and validating the CI configurations. Having the Pipeline Editor as part of GitLab Workflow VSCode plugin is a step in that direction, allowing seamless experience in local dev environments and WebIDE.
Any features of the Pipeline Editor, including integration with a CI/CD catalog right into the IDE, would be a big improvement to the developer experience.