Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

does-not-run-on: Linux arm64 #79

Open
doramatadora opened this issue Jun 10, 2024 · 11 comments
Open

does-not-run-on: Linux arm64 #79

doramatadora opened this issue Jun 10, 2024 · 11 comments

Comments

@doramatadora
Copy link

It seems this action isn't compatible with linux-arm64 runners. Are there plans to support this?

Run green-coding-solutions/eco-ci-energy-estimation@main
Run if command -v python3 &>/dev/null; then
Python is already installed.
Error: Process completed with exit code [1].

Runner VM info:

  VM Image
  OS: Linux (arm64)
  Source: Marketplace
  Publisher: arm
  Offer: github_arm_linux_runner
  Plan: github_arm_linux_runner_plan
  Version: 1.0.2
@ArneTR
Copy link
Member

ArneTR commented Jun 10, 2024

That it fails on this function is a bit suprising, but to answer your question: Yes, almost architecture agnostic support is incoming!

See this PR in the making: #76

Can I ping you as a beta tester, as we currently have no access to ARM machines for testing? We will test it on our local dedicated ARM runners, but would need a beta tester for Githubs shared ones 😇

@ArneTR
Copy link
Member

ArneTR commented Jun 10, 2024

Also to add an ETA: We plan to have this ready for testing by end this week

@doramatadora
Copy link
Author

@ArneTR that's good to hear, and I'm happy to be a beta tester! Please let me know how I can help.

@ArneTR
Copy link
Member

ArneTR commented Jun 14, 2024

Hey @doramatadora , the first draft is ready!

Can you try the runner by changing all mentions of
green-coding-solutions/eco-ci-energy-estimation@v3 to green-coding-solutions/eco-ci-energy-estimation@pre-calculated

Everything else should be largely unchanged.

If you do let it run please also send me the debug output of the step API Base Debug and Initialize Energy Estimation as I need them to calculate the new energy models.

See example in the screenshot where to find this data

Screenshot 2024-06-14 at 8 41 53 AM

@doramatadora
Copy link
Author

doramatadora commented Jun 17, 2024

Hi @ArneTR, thank you so much for making this happen 😄

Current API Base is https://api.github.com/

and Initialize Energy Estimation:

##[debug]Evaluating condition for step: 'Initialize energy estimation'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Initialize energy estimation
##[debug]Loading inputs
##[debug]Evaluating: github.ref_name
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'ref_name'
##[debug]=> '[2](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:2)327/merge'
##[debug]Result: '2327/merge'
##[debug]Evaluating: github.api_url
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'api_url'
##[debug]=> 'https://api.github.com'
##[debug]Result: 'https://api.github.com'
##[debug]Loading env
Run green-coding-solutions/eco-ci-energy-estimation@pre-calculated
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task != 'start-measurement') && (inputs.task != 'get-measurement') && (inputs.task != 'display-results'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating NotEqual:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'start-measurement'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('start-measurement' != 'start-measurement') && (inputs['task'] != 'get-measurement') && (inputs['task'] != 'display-results'))
##[debug]Result: false
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'start-measurement') && (env.ECO_CI_INIT != 'DONE'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'start-measurement'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> true
##[debug]..Evaluating NotEqual:
##[debug]....Evaluating Index:
##[debug]......Evaluating env:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'ECO_CI_INIT'
##[debug]....=> null
##[debug]....Evaluating String:
##[debug]....=> 'DONE'
##[debug]..=> true
##[debug]=> true
##[debug]Expanded: (true && ('start-measurement' == 'start-measurement') && (null != 'DONE'))
##[debug]Result: true
##[debug]Starting: run
##[debug]Loading inputs
##[debug]Evaluating: format('***0***/scripts/setup.sh initialize "***1***"
##[debug]', github.action_path, inputs.machine-power-data)
##[debug]Evaluating format:
##[debug]..Evaluating String:
##[debug]..=> '***0***/scripts/setup.sh initialize "***1***"
##[debug]'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'action_path'
##[debug]..=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'machine-power-data'
##[debug]..=> 'github_EPYC_776[3](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:3)_4_CPU_shared.sh'
##[debug]=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/setup.sh initialize "github_EPYC_7763_[4](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:4)_CPU_shared.sh"
##[debug]'
##[debug]Result: '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/setup.sh initialize "github_EPYC_7763_4_CPU_shared.sh"
##[debug]'
##[debug]Loading env
Run /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/setup.sh initialize "github_EPYC_7763_4_CPU_shared.sh"
##[debug]/usr/bin/bash --noprofile --norc -e -o pipefail /home/runner/work/_temp/184b7f2c-87c6-463b-aa[5](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:5)3-3191f6e03768.sh
Currently running on follow CPU Model 
Full CPU Info
processor	: 0
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1

processor	: 1
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1

processor	: 2
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1

processor	: 3
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1

Full memory info
MemTotal:       1[6](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:6)348140 kB
MemFree:        14619132 kB
MemAvailable:   15499340 kB
Buffers:           52412 kB
Cached:          1004[7](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:7)72 kB
SwapCached:            0 kB
Active:           71356[8](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:8) kB
Inactive:         666636 kB
Active(anon):     337344 kB
Inactive(anon):        0 kB
Active(file):     376224 kB
Inactive(file):   666636 kB
Unevictable:       45788 kB
Mlocked:           42716 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:               4[9](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:9)2 kB
Writeback:             0 kB
AnonPages:        368856 kB
Mapped:           303296 kB
Shmem:              6924 kB
KReclaimable:      72848 kB
Slab:             [13](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:13)5204 kB
SReclaimable:      72848 kB
SUnreclaim:        62356 kB
KernelStack:        3984 kB
PageTables:         5356 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8174068 kB
Committed_AS:    2164616 kB
VmallocTotal:   133[14](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:14)1626880 kB
VmallocUsed:       35184 kB
VmallocChunk:          0 kB
Percpu:             [16](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:16)80 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:          32768 kB
CmaFree:           26624 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
Using github_EPYC_7763_4_CPU_shared.sh
##[debug]Finished: run
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'start-measurement'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'start-measurement'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> true
##[debug]=> true
##[debug]Expanded: (true && ('start-measurement' == 'start-measurement'))
##[debug]Result: true
##[debug]Starting: run
##[debug]Loading inputs
##[debug]Evaluating: format('if ***0***; then
##[debug]  curl_response=$(curl -s -H "Authorization: ***" ***2***/repos/***3***/actions/workflows)
##[debug]  workflow_id=$(echo $curl_response | jq ''.workflows[] | select(.name == "***4***") | .id'')
##[debug]  ***5***/scripts/vars.sh add_var "WORKFLOW_ID" $workflow_id
##[debug]else
##[debug]  ***6***/scripts/vars.sh add_var "WORKFLOW_ID" ***7***
##[debug]fi
##[debug]
##[debug]***8***/scripts/setup.sh start_measurement
##[debug]echo "ECO_CI_INIT=DONE" >> $GITHUB_ENV;
##[debug]', inputs.send-data, github.token, inputs.gh-api-base, github.repository, github.workflow, github.action_path, github.action_path, github.workflow, github.action_path)
##[debug]Evaluating format:
##[debug]..Evaluating String:
##[debug]..=> 'if ***0***; then
##[debug]  curl_response=$(curl -s -H "Authorization: ***" ***2***/repos/***3***/actions/workflows)
##[debug]  workflow_id=$(echo $curl_response | jq ''.workflows[] | select(.name == "***4***") | .id'')
##[debug]  ***5***/scripts/vars.sh add_var "WORKFLOW_ID" $workflow_id
##[debug]else
##[debug]  ***6***/scripts/vars.sh add_var "WORKFLOW_ID" ***7***
##[debug]fi
##[debug]
##[debug]***8***/scripts/setup.sh start_measurement
##[debug]echo "ECO_CI_INIT=DONE" >> $GITHUB_ENV;
##[debug]'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'send-data'
##[debug]..=> 'true'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'token'
##[debug]..=> '***'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'gh-api-base'
##[debug]..=> 'https://api.github.com'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'repository'
##[debug]..=> '***'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'workflow'
##[debug]..=> 'CI'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'action_path'
##[debug]..=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'action_path'
##[debug]..=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'workflow'
##[debug]..=> 'CI'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'action_path'
##[debug]..=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated'
##[debug]=> 'if true; then
##[debug]  curl_response=$(curl -s -H "Authorization: ***" https://api.github.com/repos/***/actions/workflows)
##[debug]  workflow_id=$(echo $curl_response | jq ''.workflows[] | select(.name == "CI") | .id'')
##[debug]  /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/vars.sh add_var "WORKFLOW_ID" $workflow_id
##[debug]else
##[debug]  /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/vars.sh add_var "WORKFLOW_ID" CI
##[debug]fi
##[debug]
##[debug]/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/setup.sh start_measurement
##[debug]echo "ECO_CI_INIT=DONE" >> $GITHUB_ENV;
##[debug]'
##[debug]Result: 'if true; then
##[debug]  curl_response=$(curl -s -H "Authorization: ***" https://api.github.com/repos/***/actions/workflows)
##[debug]  workflow_id=$(echo $curl_response | jq ''.workflows[] | select(.name == "CI") | .id'')
##[debug]  /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/vars.sh add_var "WORKFLOW_ID" $workflow_id
##[debug]else
##[debug]  /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/vars.sh add_var "WORKFLOW_ID" CI
##[debug]fi
##[debug]
##[debug]/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/setup.sh start_measurement
##[debug]echo "ECO_CI_INIT=DONE" >> $GITHUB_ENV;
##[debug]'
##[debug]Loading env
Run if true; then
##[debug]/usr/bin/bash --noprofile --norc -e -o pipefail /home/runner/work/_temp/6619b[17](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:17)b-e650-4aff-991f-c433089701c0.sh
##[debug]ECO_CI_INIT='DONE'
##[debug]Finished: run
##[debug]Evaluating: github.workflow
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'workflow'
##[debug]=> 'CI'
##[debug]Result: 'CI'
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'get-measurement'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'start-measurement'
##[debug]....Evaluating String:
##[debug]....=> 'get-measurement'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('start-measurement' == 'get-measurement'))
##[debug]Result: false
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'display-results'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'start-measurement'
##[debug]....Evaluating String:
##[debug]....=> 'display-results'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('start-measurement' == 'display-results'))
##[debug]Result: false
##[debug]Evaluating: github.event.pull_request.number
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating github:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'event'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'pull_request'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'number'
##[debug]=> [23](https://github.com/***/actions/runs/9545128180/job/26305423039#step:3:23)27
##[debug]Result: 2327
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (github.event_name == 'pull_request') && (inputs.pr-comment == 'true'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating github:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'event_name'
##[debug]....=> 'pull_request'
##[debug]....Evaluating String:
##[debug]....=> 'pull_request'
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'pr-comment'
##[debug]....=> 'false'
##[debug]....Evaluating String:
##[debug]....=> 'true'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('pull_request' == 'pull_request') && ('false' == 'true'))
##[debug]Result: false
##[debug]Evaluating: steps.run-total-model.outputs.data-total-json
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating steps:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'run-total-model'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'outputs'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'data-total-json'
##[debug]=> null
##[debug]Result: null
##[debug]Evaluating: steps.run-lap-model.outputs.data-lap-json
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating steps:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'run-lap-model'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'outputs'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'data-lap-json'
##[debug]=> null
##[debug]Result: null
##[debug]Finishing: Initialize energy estimation

@doramatadora
Copy link
Author

I am, however, still getting an error for the results step:

Could not display table as no measurement data was present!

Here is the full debug output:

##[debug]Evaluating condition for step: 'Show energy results'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Show energy results
##[debug]Loading inputs
##[debug]Evaluating: github.ref_name
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'ref_name'
##[debug]=> '2327/merge'
##[debug]Result: '2327/merge'
##[debug]Evaluating: github.api_url
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'api_url'
##[debug]=> 'https://api.github.com'
##[debug]Result: 'https://api.github.com'
##[debug]Loading env
Run green-coding-solutions/eco-ci-energy-estimation@pre-calculated
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task != 'start-measurement') && (inputs.task != 'get-measurement') && (inputs.task != 'display-results'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating NotEqual:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> true
##[debug]..Evaluating NotEqual:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'get-measurement'
##[debug]..=> true
##[debug]..Evaluating NotEqual:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'display-results'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('display-results' != 'start-measurement') && ('display-results' != 'get-measurement') && ('display-results' != 'display-results'))
##[debug]Result: false
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'start-measurement') && (env.ECO_CI_INIT != 'DONE'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('display-results' == 'start-measurement') && (env['ECO_CI_INIT'] != 'DONE'))
##[debug]Result: false
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'start-measurement'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'start-measurement'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('display-results' == 'start-measurement'))
##[debug]Result: false
##[debug]Evaluating: github.workflow
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'workflow'
##[debug]=> 'CI'
##[debug]Result: 'CI'
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'get-measurement'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'get-measurement'
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (true && ('display-results' == 'get-measurement'))
##[debug]Result: false
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (inputs.task == 'display-results'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> true
##[debug]..Evaluating Equal:
##[debug]....Evaluating Index:
##[debug]......Evaluating inputs:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'task'
##[debug]....=> 'display-results'
##[debug]....Evaluating String:
##[debug]....=> 'display-results'
##[debug]..=> true
##[debug]=> true
##[debug]Expanded: (true && ('display-results' == 'display-results'))
##[debug]Result: true
##[debug]Starting: run
##[debug]Loading inputs
##[debug]Evaluating: format('***0***/scripts/display_results.sh -dt ***1*** -db ***2*** -b "***3***" -r ***4*** -R "***5***" -sd ***6*** -sc ***7*** -s "github"
##[debug]cat "/tmp/eco-ci/output.txt" >> $GITHUB_STEP_SUMMARY
##[debug]total_data_file="/tmp/eco-ci/total-data.json"
##[debug]echo "data-total-json=$(cat $total_data_file)" >> $GITHUB_OUTPUT
##[debug]', github.action_path, inputs.display-table, inputs.display-badge, inputs.branch, github.run_id, github.repository, inputs.send-data, inputs.show-carbon)
##[debug]Evaluating format:
##[debug]..Evaluating String:
##[debug]..=> '***0***/scripts/display_results.sh -dt ***1*** -db ***2*** -b "***3***" -r ***4*** -R "***5***" -sd ***6*** -sc ***7*** -s "github"
##[debug]cat "/tmp/eco-ci/output.txt" >> $GITHUB_STEP_SUMMARY
##[debug]total_data_file="/tmp/eco-ci/total-data.json"
##[debug]echo "data-total-json=$(cat $total_data_file)" >> $GITHUB_OUTPUT
##[debug]'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'action_path'
##[debug]..=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'display-table'
##[debug]..=> 'true'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'display-badge'
##[debug]..=> 'true'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'branch'
##[debug]..=> '2327/merge'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'run_id'
##[debug]..=> '9545128180'
##[debug]..Evaluating Index:
##[debug]....Evaluating github:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'repository'
##[debug]..=> '***'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'send-data'
##[debug]..=> 'true'
##[debug]..Evaluating Index:
##[debug]....Evaluating inputs:
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'show-carbon'
##[debug]..=> 'true'
##[debug]=> '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/display_results.sh -dt true -db true -b "2327/merge" -r 9545128180 -R "***" -sd true -sc true -s "github"
##[debug]cat "/tmp/eco-ci/output.txt" >> $GITHUB_STEP_SUMMARY
##[debug]total_data_file="/tmp/eco-ci/total-data.json"
##[debug]echo "data-total-json=$(cat $total_data_file)" >> $GITHUB_OUTPUT
##[debug]'
##[debug]Result: '/home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/display_results.sh -dt true -db true -b "2327/merge" -r 9545128180 -R "***" -sd true -sc true -s "github"
##[debug]cat "/tmp/eco-ci/output.txt" >> $GITHUB_STEP_SUMMARY
##[debug]total_data_file="/tmp/eco-ci/total-data.json"
##[debug]echo "data-total-json=$(cat $total_data_file)" >> $GITHUB_OUTPUT
##[debug]'
##[debug]Loading env
Run /home/runner/work/_actions/green-coding-solutions/eco-ci-energy-estimation/pre-calculated/scripts/display_results.sh -dt true -db true -b "2327/merge" -r 9545128180 -R "***" -sd true -sc true -s "github"
##[debug]/usr/bin/bash --noprofile --norc -e -o pipefail /home/runner/work/_temp/0a135c0b-61fb-4188-ba5a-4abd42392d2c.sh
Could not display table as no measurement data was present!
Error: Process completed with exit code 1.
##[debug]Finished: run
##[debug]Evaluating: github.event.pull_request.number
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating github:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'event'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'pull_request'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'number'
##[debug]=> 2327
##[debug]Result: 2327
##[debug]Evaluating condition for step: 'run'
##[debug]Evaluating: (success() && (github.event_name == 'pull_request') && (inputs.pr-comment == 'true'))
##[debug]Evaluating And:
##[debug]..Evaluating success:
##[debug]..=> false
##[debug]=> false
##[debug]Expanded: (false && (github['event_name'] == 'pull_request') && (inputs['pr-comment'] == 'true'))
##[debug]Result: false
##[debug]Evaluating: steps.run-total-model.outputs.data-total-json
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating steps:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'run-total-model'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'outputs'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'data-total-json'
##[debug]=> null
##[debug]Result: null
##[debug]Evaluating: steps.run-lap-model.outputs.data-lap-json
##[debug]Evaluating Index:
##[debug]..Evaluating Index:
##[debug]....Evaluating Index:
##[debug]......Evaluating steps:
##[debug]......=> Object
##[debug]......Evaluating String:
##[debug]......=> 'run-lap-model'
##[debug]....=> Object
##[debug]....Evaluating String:
##[debug]....=> 'outputs'
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'data-lap-json'
##[debug]=> null
##[debug]Result: null
##[debug]Finishing: Show energy results

@ArneTR
Copy link
Member

ArneTR commented Jun 17, 2024

Alright, at least one step further :)

The error messsage that you are seeing comes from the fact that no measurement data was collected. This is not always an error with Eco-CI, but can also be, because your workflow is simply too short.

Is the workflow somewhere public so I can have a look? What I would be checking for is how long the steps take and how you have setup the interplay of "initialize" and "start-measurement", "start-measurement" and "display-results".

@doramatadora
Copy link
Author

I'm afraid I don't have a public workflow I can share, but it's a rather long build job (6-7m) that calls on EcoCI twice–as a first and final step. I've copied the steps below. We recently migrated from ubuntu-latest to ARM64; energy estimation worked up until this point.

If it helps, I can try to find a public repo CI to migrate to ARM64 runners, and add the action.

First step:

 - name: Initialize energy estimation
    uses: green-coding-solutions/eco-ci-energy-estimation@pre-calculated
    with:
      task: start-measurement
    continue-on-error: true

Last step:

- name: Show energy results
  uses: green-coding-solutions/eco-ci-energy-estimation@pre-calculated
  with:
    task: display-results
  continue-on-error: true

@ArneTR
Copy link
Member

ArneTR commented Jun 19, 2024

Hmm, that is unfortunate. The configuration looks ok.

Without the logs I am not sure what exactly the problem is. Most likely something will file permissions, the /proc/stat file which is different on the ARM runners than on the classic Linux ones.

We tested it all on ARM machines locally, but sadly have no acces to the Github Shared Runners. I will try to ping someone with GitHub internally and ask if they can support us on this.

Stay tuned :)

@ArneTR
Copy link
Member

ArneTR commented Jul 18, 2024

Hey @doramatadora ,

I can now report some update on this :)

We have now access to ARM runners and I justed tested with our newest version.

Can you try integrating the newest version and see if the error still persisits?

Integration would be: uses: green-coding-solutions/[email protected]

  1. Just a heads up on the values: ARM runners do not have a valid power profile at the moment, so the values are likely skewed. We are working on that in this issue in case you wanna keep track: Update ARM machines from SPECpower cloud-energy#52

Main goal atm is first getting ARM technicall working and then adjusting the power profiles

@ArneTR
Copy link
Member

ArneTR commented Jul 18, 2024

Also one addition: If you keep getting the same error can you post an overview screenshot of the steps so that I can see how long the steps are you are trying to measure? If steps are too short or skipped it might be that really no data has been created

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants