Skip to content

Commit 3302359

Browse files
adrienbernedeclaude
andcommitted
Rely on stage ordering for the timings pages job
Drop the optional needs from the pages job; the build-and-test trigger jobs already inherit trigger:strategy: depend from the shared-CI .build-and-test template, so the build-and-test stage completes only once all child pipelines finish. The pages job, in the last stage, therefore runs after them without a DAG dependency (and avoids the empty-optional- needs early-start case). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent cc6e663 commit 3302359

1 file changed

Lines changed: 13 additions & 21 deletions

File tree

.gitlab-ci.yml

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -229,30 +229,22 @@ tuolumne-build-and-test:
229229
# CI TIMING TRENDS
230230
# Collect the per-job section timings produced by build_and_test.sh across all
231231
# child pipelines, merge them into an accumulating history, and publish trend
232-
# charts to GitLab Pages. Runs only on the default branch so the published
233-
# series tracks the mainline. The history.jsonl artifact of the latest
234-
# default-branch pipeline is reused as the persistent store (relies on GitLab's
235-
# "keep artifacts from the most recent successful pipelines" setting).
232+
# charts to GitLab Pages. Runs only on the default branch (or when REPORT_TIMINGS
233+
# is "ON") so the published series tracks the mainline. The history.jsonl
234+
# artifact of the latest default-branch pipeline is reused as the persistent
235+
# store (relies on GitLab's "keep artifacts from the most recent successful
236+
# pipelines" setting).
237+
#
238+
# No `needs:` on purpose: this job relies on stage ordering. The build-and-test
239+
# trigger jobs inherit `trigger:strategy: depend` from the shared-CI
240+
# `.build-and-test` template, so the build-and-test stage completes only once all
241+
# child pipelines finish; this job, in the last stage, therefore runs after them.
242+
# (The per-job timings.json are fetched via the GitLab API, not via needs, so no
243+
# artifact dependency is required here.) `when: always` keeps it running -- and
244+
# charting partial data -- even when a child pipeline fails.
236245
pages:
237246
stage: finalizing
238247
tags: [shell, oslic]
239-
# `optional: true` keeps this job runnable when a machine block is commented
240-
# out or its availability check fails; it then charts whatever data exists.
241-
# NOTE: this relies on the build-and-test trigger jobs propagating child
242-
# pipeline completion (GitLab `trigger:strategy: depend`). The RADIUSS shared
243-
# `.build-and-test` template is expected to set this; if child artifacts are
244-
# missing here, add `strategy: depend` to the trigger blocks above.
245-
needs:
246-
- job: dane-build-and-test
247-
optional: true
248-
- job: matrix-build-and-test
249-
optional: true
250-
- job: corona-build-and-test
251-
optional: true
252-
- job: tioga-build-and-test
253-
optional: true
254-
- job: tuolumne-build-and-test
255-
optional: true
256248
rules:
257249
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $REPORT_TIMINGS == "ON"'
258250
when: always

0 commit comments

Comments
 (0)