Skip to content

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
image image image * for pipeline creation
* CI lint

Intended users

Proposal

To iterate on the MVC delivered in #216444 (closed):

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

Rollout plan

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:

  1. 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.
  2. Go to pipelines page and click Run pipeline button. 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
Edited by Fabio Pitino