Skip to content

Integrated Eco-CI

Arne Tarara requested to merge arnetr/okular:eco-ci into master

A description of the changes proposed in the Pull Request

This pull requests is a bit out of the ordinary ... I guess :)

I work for an open source company called Green Coding Solutions in Berlin, Germany and we started with the mission to increase awareness and actionability around digital CO2 emissions.

We have recently created an open source CI/CD plugin called Eco-CI.

It integrates into the GitLab CI/CD pipeline and estimates the energy and CO2 consumption of the pipeline by utilizing a Machine Learning model trained on real server energy data from SPECpower

The tool creates awareness of the energy cost and carbon emissions of CI/CD pipelines and empoweres developers to create action for more sustainability. It can separate steps of the pipeline and create detailed drill-downs which step has increased / decreased in carbon emissions and provider great insights into pipeline performance in general.

In this PR I have made a sample integration into the build_clazy_clang_tidy pipeline of the .gitlab-ci.yml file. Integrations in the other pipelines have not been made as they were included and the clang_format pipeline was using a distro that did not include git, which is a requirement for Eco-CI

The idea with this PR is to get some feedback from you if that is interesting to integrate into the CI/CD domain of Okular. Since Okular is the first software to be awarded with the Blue Angel for Software I thought it is a good fit :)

I hope this PR and the information that Eco-CI provides is interesting for you and I am super interested in your feedback on it.

Details on the integration

Eco-CI is used as a wrapper around certain steps in the pipeline.

Typically the flow is as follows:

  • Initialize
  • Measure (after a certain step)
    • Repeat for each step you want to measure
  • Display results

Output

The output is shown in the pipeline log and can also be sent to a free dashboard that we provide. In this setup sending is activated.

Demo

Pinging @joseph for feedback / opinions

Merge request reports