Files
datastore/ci/workflows/optimize_toolchain.py
Max KainovandClaude Opus 4.6 a3551b5340 CI: Split requires into hard deps (requires) and ordering-only (run_after)
Refactor job dependency model to clearly separate hard dependencies from
ordering-only dependencies:

- requires: hard deps (artifact names or job names). Artifacts are
  downloaded; for job names the artifact report is downloaded. These
  affect the job digest and cache key, and trigger re-runs when changed.
- run_after: ordering-only deps (job names). Listed jobs run first, but
  nothing is downloaded and they do not affect the digest or filtering.

This replaces the needs_jobs_from_requires flag with a clean structural
distinction. set_dependency is renamed to set_run_after (all existing
callers were ordering-only), and set_requires is added for hard deps.

Also removes ENABLE_ARTIFACTS_REPORT setting — artifact reports are now
always generated for jobs that provide artifacts.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-04-14 19:07:17 +02:00

30 lines
730 B
Python

from praktika import Workflow
from ci.defs.defs import BASE_BRANCH, DOCKERS, SECRETS, ArtifactConfigs
from ci.defs.job_configs import JobConfigs
workflow = Workflow.Config(
name="OptimizeToolchain",
event=Workflow.Event.DISPATCH,
branches=[BASE_BRANCH],
jobs=[
*JobConfigs.toolchain_build_jobs,
JobConfigs.update_toolchain_dockerfile_job.set_run_after(
[j.name for j in JobConfigs.toolchain_build_jobs]
),
],
dockers=DOCKERS,
secrets=SECRETS,
artifacts=[
ArtifactConfigs.toolchain_pgo_bolt_amd,
ArtifactConfigs.toolchain_pgo_bolt_arm,
],
enable_cache=True,
enable_report=True,
enable_cidb=True,
)
WORKFLOWS = [
workflow,
]