From 50e272ffbec38a90fc40ca3efda540bf5301f2f2 Mon Sep 17 00:00:00 2001 From: Josh Johanning Date: Fri, 21 Jun 2024 08:50:20 -0500 Subject: [PATCH] Update calculate-build-duration.yml --- .github/workflows/calculate-build-duration.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/calculate-build-duration.yml b/.github/workflows/calculate-build-duration.yml index 01bd727..862f261 100644 --- a/.github/workflows/calculate-build-duration.yml +++ b/.github/workflows/calculate-build-duration.yml @@ -30,9 +30,9 @@ jobs: JOB_CONTEXT: ${{ toJSON(job) }} run: echo "$JOB_CONTEXT" - - run: sleep 120s + - run: sleep 5s - - name: Calculate build duration + - name: Calculate build duration (simple) run: | START_TIME=${{ steps.set-start-time.outputs.start_time }} END_TIME=$(date +%s) @@ -41,3 +41,15 @@ jobs: echo "Build duration (in seconds): $DURATION_SECONDS second(s)" echo "Build duration (in minutes): $DURATION_MINUTES minute(s)" + - name: Calculate build duration in minutes using GitHub API + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + JOB_URL="${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs" + JOB_JSON=$(curl -s -H "Authorization: token $GITHUB_TOKEN" $JOB_URL) + START_TIME=$(echo $JOB_JSON | jq -r '.jobs[] | select(.name == "build") | .started_at' | xargs -I {} date -j -f "%Y-%m-%dT%H:%M:%SZ" "{}" +%s) + END_TIME=$(date +%s) + DURATION_SECONDS=$(( (END_TIME - START_TIME) )) + DURATION_MINUTES=$(( (END_TIME - START_TIME) / 60 )) + echo "Build duration: $DURATION_SECONDS seconds" + echo "Build duration: $DURATION_MINUTES minutes"