Continuous Integration and Deployment (CI/CD)

In our project, we have implemented a robust CI/CD pipeline to streamline our development and deployment processes. For the CI phase, we have utilized the power of GitHub Actions workflow. This automation allows us to automate tasks such as dependency installation, including Stack, as well as executing essential commands like "make" and "make tests-run" within the workflow.

To avoid the time-consuming task of installing dependencies every time a push is made to the main branch, we have included a job that caches them. Once the "make" and "make tests_run" steps are successfully completed, we proceed to execute our systems_tests.

Here is a preview of the caching part of our CI:

For details about the way we run our scripts, please consult ci.yml.

In the deployment phase of our project, we have implemented a process to create releases using the action create-release . This process is triggered whenever a push is made on a tag, following the format 'v*'. By utilizing this action, we are able to streamline our deployment process and ensure that our releases are generated efficiently.

One important aspect of the release creation is the inclusion of a changelog. We rely on the file CHANGELOG.md to provide the necessary information for each release. This allows us to keep track of the changes made in each version and communicate them effectively to our users and stakeholders.

By following this deployment process, we are able to ensure that our releases are organized, documented, and easily accessible. This not only facilitates the deployment of our software, but also enhances the overall transparency and collaboration within our development team.

Please visit cd.yml for details about our deployment process.

Last updated