@@ -269,20 +269,20 @@ Updating the CI testing container images
269269----------------------------------------
270270
271271The libcxx linux premerge testing can run on one of three sets of runner
272- groups. The three runner group names are " llvm-premerge-libcxx-runners" ,
273- " llvm-premerge-libcxx-release-runners" and " llvm-premerge-libcxx-next-runners" .
274- Which runner set to use is controlled by the contents of
272+ groups. The three runner group names are `` llvm-premerge-libcxx-runners `` ,
273+ `` llvm-premerge-libcxx-release-runners `` and `` llvm-premerge-libcxx-next-runners `` .
274+ The runner set to use is controlled by the contents of
275275https://github.com/llvm/llvm-project/blob/main/.github/workflows/libcxx-build-and-test.yaml.
276- By default, it uses " llvm-premerge-libcxx-runners" . To switch to one of the
277- other runner sets, just replace all uses of " llvm-premerge-libcxx-runners" in
276+ By default, it uses `` llvm-premerge-libcxx-runners `` . To switch to one of the
277+ other runner sets, just replace all uses of `` llvm-premerge-libcxx-runners `` in
278278the yaml file with the desired runner set.
279279
280280Which container image is used by these three runner sets is controlled
281281and set by the variable values in
282282https://github.com/llvm/llvm-zorg/blob/main/premerge/premerge_resources/variables.tf.
283283The table below shows the variable names and
284284the runner sets to which they correspond. To see their values, follow the
285- link above (to variables.tf in llvm-zorg).
285+ link above (to `` variables.tf `` in llvm-zorg).
286286
287287+------------------------------------+---------------------------+
288288| Runner Set |Variable |
@@ -295,39 +295,21 @@ link above (to variables.tf in llvm-zorg).
295295+------------------------------------+---------------------------+
296296
297297
298- When updating the container image you can either update just the
299- runner binary (the part the connects to Github), or you can update
300- everything (tools, etc.). Whether to update just the runner or to update
301- everything is controlled by the value of ``ACTIONS_BASE_IMAGE ``, under
302- ``actions-builder `` in ``libcxx/utils/ci/docker-compose.yml ``.
303-
304- To update just the runner binary, change the value of ``ACTIONS_BASE_IMAGE ``
305- to be a modified version of one of the libcxx runner variable images from
306- https://github.com/llvm/llvm-zorg/blob/main/premerge/premerge_resources/variables.tf,
307- as follows: Find the libcxx runner image name you want to use from the
308- variables.tf file. The name will be something like
309- ``ghcr.io/llvm/libcxx-linux-builder:<some-commit-SHA> ``. Replace
310- ``libcxx-linux-builder `` with ``libcxx-linux-builder-base ``. Use this new image
311- name as the value you assign to ``ACTIONS_BASE_IMAGE ``.
312-
313- To update the entire container image, set the value of ``ACTIONS_BASE_IMAGE ``
314- to ``builder-base ``. If the value is already ``builder-base `` (there
315- have been no just-the-runner updates since the last complete update), then you
316- need to find the line containing ``RUN echo "Last forced update executed on ``
317- in ``libcxx/utils/ci/Dockerfile `` and update the date to be the current date.
318-
319- Once you have created and merged a PR with those changes, a new image
320- will be created, and a link to it can be found at
321- https://github.com/llvm/llvm-project/pkgs/container/libcxx-linux-builder,
322- where the actual image name should be
323- ``ghcr.io/llvm/libcxx-linux-builder:<SHA-of-committed-change-from-PR> ``.
324-
325- Lastly you need to create a PR in the llvm-zorg repository,
326- updating the the value of the appropriate libcxx runner variable in
327- the variables.tf file mentioned above to the name of your newly created
328- image (see above paragraph about finding the image name). Once that change
329- has been merged, an LLVM premerge maintainer (a Google employee) must use
330- terraform to apply the change to the running GKE cluster.
298+ When updating the container image you can either update just the runner binary (the part
299+ that connects to Github), or you can update everything (tools, etc.). To update the runner
300+ binary, bump the value of ``GITHUB_RUNNER_VERSION `` in ``libcxx/utils/ci/docker/docker-compose.yml ``.
301+ To update all of the tools, bump ``BASE_IMAGE_VERSION `` to a newer version of the ``libcxx-linux-builder-base ``
302+ image. You can see all versions of that image at https://github.com/llvm/llvm-project/pkgs/container/libcxx-linux-builder-base.
303+
304+ On push to ``main ``, a new version of both the ``libcxx-linux-builder `` and the ``libcxx-android-builder ``
305+ images will be built and pushed to https://github.com/llvm/llvm-project/packages.
306+
307+ You can then update the image used by the actual runners by changing the sha associated
308+ to ``libcxx_runner_image ``, ``libcxx_release_runner_image `` or ``libcxx_next_runner_image ``
309+ in `the Terraform configuration file <https://github.com/llvm/llvm-zorg/blob/main/premerge/premerge_resources/variables.tf >`_.
310+ To do so, you will need to create a PR in the llvm-zorg repository and wait for it to be
311+ merged. Once that change has been merged, an LLVM premerge maintainer (a Google employee)
312+ must use terraform to apply the change to the running GKE cluster.
331313
332314
333315Monitoring premerge testing performance
0 commit comments