We recently merged a PR adding the EcoCI tool to our CI/CD which uses a model to estimate the energy and carbon consumption of our Github Actions. The data is presented on a dashboard and also exposed via an API. We would like to be able to pull this data into an IF manifest file so that the energy consumed and carbon emitted by our CI/CD can be accounted for in more comprehensive assessments of our project's imapcts.
Scope of work:
[x] Create plugin in a new IF repository (it won't be a builtin)
[x] Add README docs
[ ] List plugin on explorer.if.greensoftware.foudnation
Acceptance criteria
[x] The plugin retrieves energy and carbon values from the EcoCI API
The plugin should sum all the energy and carbon values for all the individual components of the CI/CD and do any unit conversions necessary to express energy in kWh and carbon in gCO2eq. The start and end values should be grabbed from the first and last timestamps in the input data (with the end being the last timestep plus its duration) for the node where the plugin is invoked, or if only one timestamp exists then it should be the first timestamp plus the duration.
Given the plugin works as intended
When I run the following manifest:
Why: Sub of #898 What: Create a EcoCI plugin
We recently merged a PR adding the EcoCI tool to our CI/CD which uses a model to estimate the energy and carbon consumption of our Github Actions. The data is presented on a dashboard and also exposed via an API. We would like to be able to pull this data into an IF manifest file so that the energy consumed and carbon emitted by our CI/CD can be accounted for in more comprehensive assessments of our project's imapcts.
Scope of work:
Acceptance criteria
input
data (with the end being the last timestep plus its duration) for the node where the plugin is invoked, or if only one timestamp exists then it should be the first timestamp plus the duration.Given the plugin works as intended When I run the following manifest:
I should receive the following output (actual values will be different):