Checklist and Resources
Contents
Checklist and Resources#
Checklist#
Have a project that you collaborate on with at least one other person
Put the project on GitHub
Have project members regularly commit their work to this central repository
That project should have at least some tests
Write a
ci.yml
file which:Must be inside
.github/workflows
Define the name of the GitHub event that triggers the workflow using
on
key on the YMAL.Defines a specific host machine on which to run the job using
jobs
andruns-on
.Includes code to install any dependencies required to run the project in a before_install step
Contains a script to run the project tests
Commit the
ci.yml
file to the project’s GitHub repositoryEach time a new commit is pushed CI will run the tests and return the results. If these report that a commit causes test/tests to fail then find and fix the problem as soon as possible
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#
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.
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.
GitHub: A widely used version control platform.
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.
Practical Tutorials#
To get you started with GitHub Actions, Padok provides a hand-on tutorial where you can build a workflow that automatically tests, builds, releases, and deploys a simple microservice.
GitHub Learning Lab also offers an interactive guide for practical projects to learn GitHub actions.
References#
What is CI MIT
SSI blog Creative Commons Attribution Non-Commercial 2.5 License
The difference between continuous integration, continuous deployment, and continuous delivery Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
CI with python Attribution-NonCommercial-ShareAlike 3.0 Unported
Materials used: What is Github actions and how does it work?#
Acknowledgements#
Thanks to David Jones of the University of Sheffield RSE group for useful discussions.