File: run-buildbot-container

package info (click to toggle)
llvm-toolchain-16 1%3A16.0.6-15~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,634,792 kB
  • sloc: cpp: 6,179,261; ansic: 1,216,205; asm: 741,319; python: 196,614; objc: 75,325; f90: 49,640; lisp: 32,396; pascal: 12,286; sh: 9,394; perl: 7,442; ml: 5,494; awk: 3,523; makefile: 2,723; javascript: 1,206; xml: 886; fortran: 581; cs: 573
file content (31 lines) | stat: -rwxr-xr-x 1,403 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash

# This script starts a shell in a container running the libc++ build bot Docker
# image. That image emulates the environment used by libc++'s Linux builders on
# BuildKite.
#
# Once you're inside the shell, you can run the various build jobs with the
# `run-buildbot` script.
#
# This script must be run from within the LLVM monorepo. Furthermore, the
# monorepo will be mounted as `/llvm` inside the container. Be careful, the
# state in `/llvm` is shared between the container and the host machine, which
# is useful for editing files on the host machine and re-running the build bot
# in the container.
#
# If you are on Linux you will likely not be able to write to the mount because
# the user in the container doesn't have permissions to do so.
# If you need to do this, give that user permission to do so after running
# the container or add this flag to run the container as your local user IDs:
# --user $(id -u):$(id -g)

set -e

MONOREPO_ROOT="$(git rev-parse --show-toplevel)"
if [[ ! -d "${MONOREPO_ROOT}/libcxx/utils/ci" ]]; then
    echo "Was unable to find the root of the LLVM monorepo; are you running from within the monorepo?"
    exit 1
fi
docker pull ldionne/libcxx-builder
docker run -it --volume "${MONOREPO_ROOT}:/llvm" --workdir "/llvm" --cap-add=SYS_PTRACE ldionne/libcxx-builder \
    bash -c 'git config --global --add safe.directory /llvm ; exec bash'