CI linter: Render warning messages in UI (MVC)
Problem to solve
Not defined, except that this is a follow up from #216444 (closed) where we delivered an MVC that allowed to raise warnings in the backend, to be persisted side by side with error messages. Any raised warning is currently not being displayed to the end user.
Simiar error information is currently shown in the following places:
|Pipeline view||Run pipeline page||CI lint page||API response|
|* for pipeline creation
* CI lint
To iterate on the MVC delivered in #216444 (closed):
- raise a warning if last job rule uses when:always without workflow:rules and link to troubleshooting documentation
job: script: echo rules: - when: always # this should raise a warning
- visualize warnings to the end user only via the UI (pipeline view, linter page, run pipeline page) - API responses will be updated in #233632 (closed)
- restyle error messages to be consistent with warning messages, but of different color
Given that this feature is being developed behind a feature flag
ci_raise_job_rules_without_workflow_rules_warning, we weed to a rollout plan described at #233618 (closed)
Availability & Testing
The feature should work when:
- Go to CI Lint and validate a yaml configuration that should raise warning. If multiple jobs have the same issues then multiple warnings should be displayed.
- Go to pipelines page and click
Run pipelinebutton. Then run a pipeline from a yaml file containing issues. The warning messages should be displayed in the pipeline view if the pipeline is successful but with warnings. The warning messages should be displayed in the Run Pipeline form if the pipeline has errors and warnings.
- Unit test changes - Yes, new unit tests are required for both backend and frontend implementations
- Integration test changes - Yes, integration test is required to ensure BE communicates with FE
- Ensure messages are appropriately displayed: separate message for deprecation, error and warnings.
- Ensure multiple messages are displayed if there are multiple offenses
- End-to-end test change - Not required