Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00
..

ScriptedBuilder Buildbot Workers

This directory contains code shared by LLVM Buildbot workers. The typical pipeline of a ScriptedBuilder-based builder is as follows.

  1. A commit is pushed to main

  2. The Buildbot master polls the repository and finds new commits. It schedules build requests on every relevant worker. Alternatively, a build request of a specific llvm-project commit can be created using the "Force Build" or "Rebuild" buttons.

  3. When a worker is ready, the master sends the build steps determined by ScriptedBuilder to the worker.

  4. The checkout step checks out llvm-project commit into a directory named llvm.src on the worker.

  5. The annotate step executes a predefined Python script from the llvm-project source tree on the worker. Its working directory is an initially empty sibling directory named build. The argument --workdir=. is passed to override the default build directory (which is different to avoid accidentally spilling clutter into the cwd)

  6. The script is expected to use the utilities from worker.py to build LLVM. The with w.step("stepname"): pattern is used to visually separate additional steps in the Buildbot GUI.

Reproducing Builds

Users can execute the worker script directly to reproduce a build problem with a worker using the llvm-project source tree in which it is located. By default it will use a new directory with .workdir suffix (so it can be .gitignore-ignored) next to the script as build directory.

The ScriptedBuilder system tries to keep all worker/build settings within the script, but some parameters can be overridden using command line parameters. For instance, --jobs overrides the Ninja and llvm-lit -j argument that the worker would use. Script should be written to honor these overrides where they apply, and may also add additional ones.

See worker.py or a reference script for further details.