Skip to content

Commit eb1bc4e

Browse files
committed
Find SHA, IDs, and durations in one step.
1 parent c1d96a5 commit eb1bc4e

1 file changed

Lines changed: 13 additions & 37 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,19 @@ jobs:
9797
- name: Watch the deployment
9898
run: gh run watch $deploy_run_id -R originlab/${{ matrix.site }} -i 10 --exit-status
9999

100-
- name: Find job IDs and the SHA
100+
- name: Find SHA, job IDs, and durations
101101
run: |
102102
run_view_json=$(gh run view "$deploy_run_id" -R "originlab/${{ matrix.site }}" --json jobs,headSha)
103-
104-
echo "$run_view_json"
105-
106-
echo "build_job_id=$(echo "$run_view_json" | jq -r '.jobs[] | select(.name == "publish_book / convert") | .id')" >> "$GITHUB_ENV"
107-
echo "optimize_job_id=$(echo "$run_view_json" | jq -r '.jobs[] | select(.name == "publish_book / optimize") | .id')" >> "$GITHUB_ENV"
108-
echo "run_sha=$(echo "$run_view_json" | jq -r '.headSha')" >> "$GITHUB_ENV"
103+
echo "$run_view_json" | jq -r '
104+
(.jobs[] | select(.name | startswith("publish_book / convert"))) as $build
105+
| (.jobs[] | select(.name == "publish_book / optimize")) as $optimize
106+
| "run_sha=\(.headSha)",
107+
"build_job_id=\($build.databaseId)",
108+
"optimize_job_id=\($optimize.databaseId)",
109+
"build_duration=\(($build.completedAt | fromdateiso8601) - ($build.startedAt | fromdateiso8601))",
110+
"optimize_duration=\(($optimize.completedAt | fromdateiso8601) - ($optimize.startedAt | fromdateiso8601))"
111+
' >> "$GITHUB_ENV"
112+
echo 'Done.'
109113
110114
- name: Setup helper scripts
111115
run: |
@@ -133,30 +137,6 @@ jobs:
133137
echo "$result" | xargs
134138
}
135139
136-
get_duration() {
137-
local repo="$1"
138-
local job_id="$2"
139-
140-
local job_data
141-
job_data=$(gh api "/repos/${repo}/actions/jobs/${job_id}")
142-
143-
local start_time end_time
144-
start_time=$(echo "$job_data" | jq -r '.started_at')
145-
end_time=$(echo "$job_data" | jq -r '.completed_at')
146-
147-
if [ "$start_time" = "null" ] || [ "$end_time" = "null" ]; then
148-
echo "0"
149-
return
150-
fi
151-
152-
local start_epoch end_epoch raw_seconds
153-
start_epoch=$(date -d "$start_time" +%s)
154-
end_epoch=$(date -d "$end_time" +%s)
155-
raw_seconds=$((end_epoch - start_epoch))
156-
157-
get_human_time "$raw_seconds"
158-
}
159-
160140
get_sorted_groups() {
161141
awk -F'\t' '
162142
{
@@ -196,9 +176,7 @@ jobs:
196176
run: |
197177
source ./helpers.sh
198178
199-
duration=$(get_duration "originlab/${{ matrix.site }}" "$build_job_id")
200-
201-
echo "# Conversion <sub><sup>:stopwatch:$duration</sup></sub>" >> "$GITHUB_STEP_SUMMARY"
179+
echo "# Conversion <sub><sup>:stopwatch:$build_duration</sup></sub>" >> "$GITHUB_STEP_SUMMARY"
202180
gh run view $deploy_run_id -j $build_job_id -R originlab/${{ matrix.site }} --log \
203181
| awk '/generator\.dll"/ {f=1} /upload-artifact/ {f=0} f' \
204182
| cut -f3- | cut -d' ' -f2- \
@@ -216,9 +194,7 @@ jobs:
216194
run: |
217195
source ./helpers.sh
218196
219-
duration=$(get_duration "originlab/${{ matrix.site }}" "$optimize_job_id")
220-
221-
echo "# Optimization <sub><sup>:stopwatch:$duration</sup></sub>" >> "$GITHUB_STEP_SUMMARY"
197+
echo "# Optimization <sub><sup>:stopwatch:$optimize_duration</sup></sub>" >> "$GITHUB_STEP_SUMMARY"
222198
opt_log=$(gh run view $deploy_run_id -j $optimize_job_id -R originlab/${{ matrix.site }} --log \
223199
| awk '/find pages\// {f=1} /upload-artifact/ {f=0} f' \
224200
| cut -f3- | cut -d' ' -f2- \

0 commit comments

Comments
 (0)