mirror of
https://github.com/lupyuen/nuttx-release.git
synced 2025-01-13 07:38:29 +08:00
Estimate the GitHub Runner Hours for the day so far
This commit is contained in:
parent
c69c34eac0
commit
8e348cbc0a
1 changed files with 67 additions and 0 deletions
67
compute-github-runners.sh
Executable file
67
compute-github-runners.sh
Executable file
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env bash
|
||||
## Estimate the GitHub Runner Hours for the day so far (by UTC time).
|
||||
## We Accumulate the GitHub Job Duration and Extrapolate the GitHub Runner Hours.
|
||||
|
||||
## Job Duration to Runner Hours is inflated slightly
|
||||
duration_hours_to_runner_hours=8
|
||||
|
||||
## For Testing:
|
||||
## date=2024-10-21
|
||||
## hours=24
|
||||
date=$(date -u +'%Y-%m-%d')
|
||||
hours=$(( 1+$(date -u +'%H') ))
|
||||
|
||||
## Set the GitHub Token: export GITHUB_TOKEN=...
|
||||
. $HOME/github-token.sh
|
||||
|
||||
## Accumulate the Job Duration and Extrapolate the Runner Hours
|
||||
function add_runner_hours {
|
||||
local repo=$1
|
||||
local run_ids=$(
|
||||
gh run list \
|
||||
--repo $repo \
|
||||
--limit 1000 \
|
||||
--created $date \
|
||||
--json databaseId,createdAt,displayTitle,name \
|
||||
--jq '.[].databaseId'
|
||||
)
|
||||
|
||||
for run_id in $run_ids; do
|
||||
# echo run_id=$run_id
|
||||
local run_duration_ms=$(
|
||||
curl -L --silent \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
https://api.github.com/repos/$repo/actions/runs/$run_id/timing \
|
||||
| jq '.run_duration_ms'
|
||||
)
|
||||
if [[ "$run_duration_ms" == "null" ]]; then
|
||||
continue
|
||||
fi
|
||||
# echo run_duration_ms=$run_duration_ms
|
||||
local runner_hours=$(
|
||||
bc -e "$duration_hours_to_runner_hours*$run_duration_ms/1000/60/60"
|
||||
)
|
||||
# echo runner_hours=$runner_hours
|
||||
if [[ "$runner_hours" != "0" ]]; then
|
||||
echo $run_id,$run_duration_ms,$runner_hours
|
||||
total_runner_hours=$(( $total_runner_hours+$runner_hours ))
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
## Accumulate the Runner Hours for nuttx and nuttx-apps repos
|
||||
echo run_id,run_duration_ms,runner_hours
|
||||
total_runner_hours=0
|
||||
add_runner_hours apache/nuttx
|
||||
add_runner_hours apache/nuttx-apps
|
||||
|
||||
## Compute the Full-Time Runners
|
||||
fulltime_runners=$(
|
||||
bc -e "$total_runner_hours/$hours"
|
||||
)
|
||||
echo date=$date
|
||||
echo hours=$hours
|
||||
echo total_runner_hours=$total_runner_hours
|
||||
echo fulltime_runners=$fulltime_runners
|
Loading…
Reference in a new issue