actions-marketplace-validations/Eco CI Energy Estimation

Estimate the energy of Linux Github Actions Runner VMs via ML Model

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Maintainedlast commit Dec 13, 2025
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: actions-marketplace-validations/green-coding-berlin_eco-ci-energy-estimation@0fd2200a8f02d7939066c535e3642c2ebee9db16 # no releases — HEAD as of 2026-07-10

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
taskTask to be executed (start-measurement, get-measurement, display-results)yes
job-idThe unique ID of the job that is runno${{ job.check_run_id }}
branchUsed to correctly identify this CI run for the Badge. Uses github.ref_name by defaultno${{ github.ref_name }}
labelLabel for the get-measurement task, to mark what this measurement correlates to in your workflowno
machine-power-dataThe file to read the machine power data from. Default will be 4 core AMD EPYC 7763 Github Runnernogithub_EPYC_7763_4_CPU_shared.sh
send-dataSend metrics data to dashboard (default: metrics.green-coding.io) to create and display badge, and see an overview of the energy of your CI runs. Set to false to send no data.notrue
display-tableShow the energy reading results in a table during display-results stepnotrue
display-badgeShows the badge for the ci run during display-results stepnotrue
pr-commentAdd a comment to the PR with the results during display-results stepnofalse
json-outputOutput measurement data also as JSON artifactsnofalse
gh-api-baseBase URL of the Github API to send data to (including schema). Default is "github.api_url" (which resolves to https://api.github.com in free and many enterprise setups), but can be changed to your hostname if you have a custom hosted Github Enterpriseno${{ github.api_url }}
typeIf you want filter data in the GMT Dashboard or in CarbonDB you can here manually set a type for drill-down later. Defaults to "machine.ci"nomachine.ci
projectIf you want filter data in the GMT Dashboard or in CarbonDB you can here manually set a project for drill-down later. Defaults to "CI/CD"noCI/CD
machineIf you want filter data in the GMT Dashboard or in CarbonDB you can here manually set a machine for drill-down later. Defaults to ubuntu-latestnoubuntu-latest
tagsIf you want filter data in the GMT Dashboard or in CarbonDB you can here manually set tags for drill-down later. Please supply comma separated. Tags cannot have commas itself or contain quotes. Defaults to emptyno""
gmt-api-tokenIf you are not using the default user for the GMT API supply your auth token. We recommend to have this as a GitHub Secretno""
api-endpoint-addWhen using the GMT Dashboard and / or CarbonDB specify the endpoint URL to send to. Defaults to "https://api.green-coding.io/v3/ci/measurement/add"nohttps://api.green-coding.io/v3/ci/measurement/add
api-endpoint-badge-getWhen using the GMT Dashboard and / or CarbonDB specify the endpoint URL to get the badge from to. Defaults to "https://api.green-coding.io/v1/ci/badge/getnohttps://api.green-coding.io/v1/ci/badge/get
dashboard-urlThe URL for the GMT Dashboard. Punch in yours if self-hosted. Defaults to "https://metrics.green-coding.io"nohttps://metrics.green-coding.io
co2-calculation-methodCO2 calculation can be a constant and will use a supplied fixed grid intensity. Or it can also be location based where it will use a grid intensity API provider to determine the carbon intensity value of the current machine IP.noconstant
co2-grid-intensity-constantConstant value to be used to calculate the CO2 from the estimated energy. We use the worldwide average value from Ember compiled by The Green Web Foundation from https://github.com/thegreenwebfoundation/co2.js/blob/main/data/output/average-intensities.json#L1314 as default and update it annually.no472
co2-grid-intensity-api-tokenAPI token for the API of your choice regarding the grid intensity. See documentation for detailsno""
namedescription
data-total-jsonContains the data of the total measurement which is retrieved by the 'display-results' task.
data-lap-jsonContains the data of the most recent measurement which is retrieved by the 'get-measurement' task.