@@ -28,19 +28,46 @@ please see https://scitools.org.uk/organisation.html#governance
2828Cirrus-CI
2929*********
3030
31- The unit and integration tests in Iris are an essential mechanism to ensure
31+ Iris unit and integration tests are an essential mechanism to ensure
3232that the Iris code base is working as expected. :ref: `developer_running_tests `
33- may be run manually but to ensure the checks are performed a
34- continuous integration testing tool named `cirrus-ci `_ is used .
33+ may be performed manually by a developer locally. However Iris is configured to
34+ use the `cirrus-ci `_ service for automated Continuous Integration (CI) testing .
3535
36- A `cirrus-ci `_ configuration file named `.cirrus.yml `_
37- is in the Iris repository which tells Cirrus-CI what commands to run. The
38- commands include retrieving the Iris code base and associated test files using
39- conda and then running the tests. `cirrus-ci `_ allows for a matrix of tests to
40- be performed to ensure that all expected variations test successfully.
36+ The `cirrus-ci `_ configuration file `.cirrus.yml `_ in the root of the Iris repository
37+ defines the tasks to be performed by `cirrus-ci `_. For further details
38+ refer to the `Cirrus-CI Documentation `_. The tasks performed during CI include:
39+
40+ * linting the code base and ensuring it adheres to the `black `_ format
41+ * running the system, integration and unit tests for Iris
42+ * ensuring the documentation gallery builds successfully
43+ * performing all doc-tests within the code base
44+ * checking all URL references within the code base and documentation are valid
45+
46+ The above `cirrus-ci `_ tasks are run automatically against all `Iris `_ branches
47+ on GitHub whenever a pull request is submitted, updated or merged. See the
48+ `Cirrus-CI Dashboard `_ for details of recent past and active Iris jobs.
49+
50+ .. _skipping Cirrus-CI tasks :
51+
52+ Skipping Cirrus-CI Tasks
53+ ------------------------
54+
55+ As a developer you may not wish to run all the CI tasks when you are actively
56+ developing e.g., you are writing documentation and there is no need for linting,
57+ or long running compute intensive testing tasks to be executed.
58+
59+ As a convenience, it is possible to easily skip one or more tasks by setting
60+ the appropriate environment variable within the `.cirrus.yml `_ file:
61+
62+ * ``SKIP_LINT_TASK `` to skip `flake8 `_ linting and `black `_ formatting
63+ * ``SKIP_TEST_MINIMAL_TASK `` to skip restricted unit and integration testing
64+ * ``SKIP_TEST_FULL_TASK `` to skip full unit and integration testing
65+ * ``SKIP_GALLERY_TASK `` to skip building the documentation gallery
66+ * ``SKIP_DOCTEST_TASK `` to skip running the documentation doc-tests
67+ * ``SKIP_LINKCHECK_TASK `` to skip checking for broken documentation URL references
68+ * ``SKIP_ALL_TEST_TASKS `` which is equivalent to setting ``SKIP_TEST_MINIMAL_TASK `` and ``SKIP_TEST_FULL_TASK ``
69+ * ``SKIP_ALL_DOC_TASKS `` which is equivalent to setting ``SKIP_GALLERY_TASK ``, ``SKIP_DOCTEST_TASK ``, and ``SKIP_LINKCHECK_TASK ``
4170
42- The `cirrus-ci `_ tests are run automatically against the `Iris `_ master
43- repository when a pull request is submitted, updated or merged.
4471
4572GitHub Checklist
4673****************
@@ -50,6 +77,10 @@ passing:
5077
5178.. image :: ci_checks.png
5279
53- If any CI checks fail, then the pull request is unlikely to be merged to the
80+ If any CI tasks fail, then the pull request is unlikely to be merged to the
5481Iris target branch by a core developer.
5582
83+
84+ .. _Cirrus-CI Dashboard : https://cirrus-ci.com/github/SciTools/iris
85+ .. _Cirrus-CI Documentation : https://cirrus-ci.org/guide/writing-tasks/
86+
0 commit comments