Resources

What to learn next

If you have not already read the testing chapter it is suggested to do so to learn more about the different kinds of tests and their benefits in order to make the most of CI.

Definitions/glossary

Build: A group of jobs. For example, a build might have two jobs, each of which tests a project with a different version of a programming language. A build finishes when all of its jobs are finished.

Computational environment: The environment where a project is run, including the operating system, the software installed on it, and the versions of both.

Continuous integration: The process of regularly combining the work of project members into a centralised version. Also called CI. CI software typically runs tests on the integrated version of a project to identify conflicts and bugs introduced by the integration.

GitHub: A widely used version control platform.

Job: An automated process that clones your repository into a virtual environment and then carries out a series of phases such as compiling your code and running tests. A job fails if the return code of the script encounters an error.

GitHub Actions: It is a CI/CD service that runs on GitHub repos.

Workflows They are YAML files stored in the .github/workflows directory of a repository.

Action It is a package you can import and use in your workflow. GitHub provides an Actions Marketplace to find actions to use in workflows.

Job It is a virtual machine that runs a series of steps. Jobs are parallelized by default, but steps are sequential by default.

Bibliography

Acknowledgements

Thanks to David Jones of the University of Sheffield RSE group for useful discussions.