Skip to content

Commit e0a528e

Browse files
committed
Update instructions for updating images in pre-merge
1 parent 53106b7 commit e0a528e

File tree

1 file changed

+21
-39
lines changed

1 file changed

+21
-39
lines changed

libcxx/docs/Contributing.rst

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -269,20 +269,20 @@ Updating the CI testing container images
269269
----------------------------------------
270270

271271
The 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
275275
https://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
278278
the yaml file with the desired runner set.
279279

280280
Which container image is used by these three runner sets is controlled
281281
and set by the variable values in
282282
https://github.com/llvm/llvm-zorg/blob/main/premerge/premerge_resources/variables.tf.
283283
The table below shows the variable names and
284284
the 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

333315
Monitoring premerge testing performance

0 commit comments

Comments
 (0)