Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-16882

Save CircleCI resources with optional test jobs

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 3.0.26, 3.11.12, 4.0.2, 4.1
    • CI
    • None
    • Quality Assurance
    • Low Hanging Fruit
    • All
    • None
    • Hide

      Testing would be just checking that a push doesn't trigger any tests until we manually approve them. We'll probably need to add a note in the documentation about the mandatory tests.

      Show
      Testing would be just checking that a push doesn't trigger any tests until we manually approve them. We'll probably need to add a note in the documentation about the mandatory tests.

    Description

      This ticket implements the addition of approval steps in the CircleCI workflows as it was proposed in this email sent to the dev list:

      The current CircleCI configuration automatically runs the unit tests, JVM dtests and cqhshlib tests. This is done by default for every commit or, with some configuration, for every push.

      Along the lifecycle of a ticket it is quite frequent to have multiple commits and pushes, all running these test jobs. I'd say that frequently it is not necessary to run the tests for some of those intermediate commits and pushes. For example, one can show proofs of concept, or have multiple rounds of review before actually running the tests. Running the tests for every change can produce an unnecessary expense of CircleCI resources.

      I think we could make running those tests optional, as well as clearly specifying in the documentation what are the tests runs that are mandatory before actually committing. We could do this in different ways:

      1. Make the entire CircleCI workflow optional, so the build job requires
        manual approval. Once the build is approved the mandatory test jobs would
        be run without any further approval, exactly as it's currently done.
      2. Make all the test jobs optional, so every test job requires manual approval, and the documentation specifies which tests are mandatory in the final steps of a ticket.
      3. Make all the mandatory test jobs depend on a single optional job, so we have a single button to optionally run all the mandatory tests.

      I think any of these changes, or a combination of them, would significantly
      reduce the usage of resources without making things less tested. The only
      downside I can think of is that we would need some additional clicks on the
      CircleCI GUI.

      Attachments

        Activity

          People

            adelapena Andres de la Peña
            adelapena Andres de la Peña
            Andres de la Peña
            Berenguer Blasi, Ekaterina Dimitrova
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: