GitLab config: Job 'frontend_test_unit' is retried in case of failures
To fully benefit from the advantages of CI/CD, developers need to follow certain principles. Many of these principles have been introduced in the landmark book Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation and are nowadays widely accepted. One of these principles is:
The build process has to be deterministic. Flaky behavior, e.g., tests that sometimes fail, should be avoided at all cost, because this causes maintenance issues. However, addressing this issue through retries after failures might not only hide the underlying problem, but makes issues also harder to debug when they only occur sometimes.
Problem: We analyzed your project and found that the file .gitlab-ci.yml (line 48) violates this principle. The job frontend_test_unit
(in stage unit-test
) is set to be retried in case of failures:
frontend_test_unit:
...
retry: 2
...
Suggested Fix: Remove retry: 2
from the job definition or consider adding the option when
to specify failures cases (e.g., runner_system_failure
) in which the job can be retried without hiding flaky tests.
Disclaimer: This issue has been automatically reported by CD-Linter, a tool developed at the University of Zurich that detects CI/CD violations in the GitLab CI/CD pipeline configuration. We are currently evaluating the effectiveness of our tool and we are monitoring this issue.
Please up/downvote this issue to indicate whether you agree/disagree with the report.