Skip to content

v4.0-rc3 Pre-Calculated, low dependency & SCI Embodied Carbon

Pre-release
Pre-release
Compare
Choose a tag to compare
@ArneTR ArneTR released this 18 Jun 10:23
· 28 commits to main since this release
93ceb3e

The functionality of Eco-CI has been rewritten down to it's core.

Although the general concept is still the same (we use Cloud Energy to generate power data based in CPU utilization) we dropped a humongous amount of dependencies and shaved off almost 100x in terms of overhead.

It looks pretty stable in our initial tests on different GitHub machines, still we are releasing this as a release candidate for now

Key facts and architectural changes:

  • Cloud Energy power curves are now pre-calculated in bash variable file instead of dynamically inferenced
  • python3 dependecy dropped. We are using pure bash now
  • bc dependency dropped. We are using awk now, which was a depency beforehand already
  • go dependency dropped. The graph functionality has simply been removed. It was a nice gimmick but provided very few actionable insights
  • Caching dropped. There is simply nothing anymore to cache :)
  • Support of ARM runners added implicitly
  • Support for Ubuntu 20.04 added implicitly
  • Overhead reduced from 23s for initial download and ML training step to 200ms for bash inferencing on pre-calculated files
  • Embodied carbon has been added to truly output an SCI score. Before it was using a fixed constant

We also changed the API with the intent to simplify it. Please note that these changes might be breaking changes, depending on the complexity of your integration.

GitHub breaking Changes

  • json-output in step display-results must be actively set to 'true' to enable creating the JSON files
  • branch must only be submitted one in start-measurement and not in every call to get-measurement
  • send-data must only be submitted one in start-measurement and not in every call to get-measurement
  • show-carbon has been renamed to calculate-co2 to better reflect that actual compute work is done
  • api-base has been renamed to gh-api-base to not confuse with the dashboard api base if you want to host a data drain yourself
  • machine-uuid is now a MUST to be specified. It will not be auto generated anymore
  • machine-uuid, company-uuid and project-uuid must only be submitted one in start-measurement and not in every call to get-measurement

GitLab changes

  • ECO_CI_JSON_OUTPUT environment variable must be exported with value 'true' to enable creating JSON files
  • initialize_energy_estimator is not existent anymore. The functionality has been merged into start_measurement to simplify the API
  • ECO_CI_MACHINE_UUID is now a MUST to be specified. It will not be auto generated anymore

What's Changed

  • Update to cache@v4 by @jan-kiszka in #71
  • Changes the ip resolver from ip-api.com to ipapi.com because of https by @ribalba in #78
  • Pre calculated Machine energy profiles by @ArneTR in #76
  • Better overhead and api by @ArneTR in #83
  • api-base is now github.api_url by default by @ArneTR in #82

New Contributors

Full Changelog: v3.1...v4.0-rc1