Pre-commit test policies

Definition

  • Pre-commit test - Any single test in a pre-commit test suite.
  • Pre-commit test suite - A collection of pre-commit tests that have a common denominator. A test suite runs in a single Jenkins job.

Policies

Pull Requests

  • A PR must pass pre-commit tests before being committed to the main Unomi repo.
    • The relevant pre-commit test suites are automatically launched according to PR contents.

Problems

Breakage

Breakage is when one or more tests in a pre-commit test suite fails or is flaky (occasionally fails).

  • Breakages should be fixed within 8 hours.
Slowness

Slowness is when the total time to run a pre-commit suite exceeds 30 minutes*, including the time the job spends in the Jenkins queue.

  • Slowness should be fixed within 24 hours.

Problem Resolution

For any problem, the options are, one of:

  • Roll back the culprit PR.
  • Roll out a fix within 24 hours.
  • Disable the slow test or feature temporarily (make sure there is a tracking issue to re-enable it).