GitLab CI Pipelines#

PETSc uses GitLab Pipelines for testing during continuous integration.

Do not overdo requesting testing; it is a limited resource, so if you realize a currently running pipeline is no longer needed, cancel it.

The pipeline status for a merge request (MR) is displayed near the top of the MR page and in the pipelines tab.

(The figures below are high resolution, so zoom in if needed)

../../_images/pipeline-from-MR.png

Fig. 20 Pipeline status for a merge request (MR)#

To un-pause the pipeline, click the “play” button (or start a new one with “Run Pipeline” if necessary).

../../_images/run-paused-pipeline.png

Fig. 21 Un-pausing a pipeline.#

A pipeline consists of “Stages” each with multiple “Jobs”. Every job is one configuration on one machine.

../../_images/show-failure.png

Fig. 22 Examining a failed pipeline stage.#

You can see the failed jobs by clicking on the X.

../../_images/find-exact-bad-job.png

Fig. 23 Locating the exact failed job in a pipeline stage.#

A job is a run of the PETSc test harness and consists of many “examples”. Each test is a run of an example with a particular set of command line options

A failure in running the job’s tests will have FAILED and a list of the failed tests

../../_images/failed-examples.png

Fig. 24 Failed examples in a pipeline job.#

Search for not ok in the jobs output to find the exact failure

../../_images/unfreed-memory.png

Fig. 25 A test that failed because of unfreed memory.#

Examples of pipeline failures#

If your source code is not properly formatted you will see an error from make checkbadSource. Always run make checkbadSource on your machine before submitting a pipeline.

../../_images/badsource.png

Fig. 26 checkbadSource failure.#

../../_images/another-failure.png

Fig. 27 A test failing with a PETSc error.#

../../_images/error-compiling-source.png

Fig. 28 Error in compiling the source code.#

You can download the configure.log file to find the problem using the “Browse” button and following the paths to the configure file.

../../_images/pipeline-configure.png

Fig. 29 Error in running configure.#

../../_images/pipeline-configure-browse.png

Fig. 30 Downloading configure.log from a failed pipeline job.#

The “Retry” button at the top of a previous pipeline or job does not use any new changes to the branch you have pushed since that pipeline was started - it retries the same Git commit that was previously tried. The job “Retry” should only be used this way when you suspect the testing system has some intermittent error unrelated to your branch.

Please report all “odd” errors in the testing that don’t seem related to your branch in this tracking issue.

  1. Check the issue’s threads to see if the error is listed and add it there, with a link to your MR (e.g. !1234). Otherwise, create a new thread.

  2. Click the three dots in the top right of the thread and select “Copy link”.

  3. Add this link in your MR description.