Skip to content

Commit 7e51bca

Browse files
authored
[release auto] add uv and default python in forge (#58874)
also uses `curl -fsSL` as much as possible otherwise the release blocker checker is not working. also removes unnecessary sudos. Signed-off-by: Lonnie Liu <[email protected]>
1 parent b931d7b commit 7e51bca

File tree

3 files changed

+51
-11
lines changed

3 files changed

+51
-11
lines changed

.buildkite/release-automation/forge_arm64.Dockerfile

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1.3-labs
22

3-
FROM ubuntu:20.04
3+
FROM ubuntu:22.04
44

55
ENV DEBIAN_FRONTEND=noninteractive
66

@@ -16,17 +16,37 @@ apt-get install -y curl zip clang-12
1616
ln -s /usr/bin/clang-12 /usr/bin/clang
1717

1818
# Install miniforge3
19-
curl -sfL https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-aarch64.sh > /tmp/miniforge3.sh
19+
curl -fsSL https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-aarch64.sh > /tmp/miniforge3.sh
2020
bash /tmp/miniforge3.sh -b -u -p /usr/local/bin/miniforge3
2121
rm /tmp/miniforge3.sh
2222
/usr/local/bin/miniforge3/bin/conda init bash
2323

2424
# Install Bazelisk
25-
curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-arm64 --output /usr/local/bin/bazelisk
25+
curl -fsSL https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-arm64 --output /usr/local/bin/bazelisk
2626
chmod +x /usr/local/bin/bazelisk
2727

2828
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
2929

30+
# Install uv
31+
curl -fsSL https://astral.sh/uv/install.sh | env UV_UNMANAGED_INSTALL="/usr/local/bin" sh
32+
33+
mkdir -p /usr/local/python
34+
# Install Python using uv
35+
UV_PYTHON_VERSION=3.10
36+
uv python install --install-dir /usr/local/python "$UV_PYTHON_VERSION"
37+
38+
export UV_PYTHON_INSTALL_DIR=/usr/local/python
39+
# Make Python from uv the default by creating symlinks
40+
UV_PYTHON_BIN="$(uv python find --no-project "$UV_PYTHON_VERSION")"
41+
echo "uv python binary location: $UV_PYTHON_BIN"
42+
ln -s "$UV_PYTHON_BIN" "/usr/local/bin/python${UV_PYTHON_VERSION}"
43+
ln -s "$UV_PYTHON_BIN" /usr/local/bin/python3
44+
ln -s "$UV_PYTHON_BIN" /usr/local/bin/python
45+
46+
# As a convention, we pin all python packages to a specific version. This
47+
# is to to make sure we can control version upgrades through code changes.
48+
uv pip install --system pip==25.2 cffi==1.16.0
49+
3050
EOF
3151

3252
ENV CC=clang

.buildkite/release-automation/forge_x86_64.Dockerfile

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1.3-labs
22

3-
FROM ubuntu:20.04
3+
FROM ubuntu:22.04
44

55
ENV DEBIAN_FRONTEND=noninteractive
66

@@ -21,17 +21,37 @@ addgroup --gid 992 docker1 # docker group on buildkite AMI as of 2025-06-07
2121
ln -s /usr/bin/clang-12 /usr/bin/clang
2222

2323
# Install miniforge3
24-
curl -sfL https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-x86_64.sh > /tmp/miniforge3.sh
24+
curl -fsSL https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-x86_64.sh > /tmp/miniforge3.sh
2525
bash /tmp/miniforge3.sh -b -u -p /usr/local/bin/miniforge3
2626
rm /tmp/miniforge3.sh
2727
/usr/local/bin/miniforge3/bin/conda init bash
2828

2929
# Install Bazelisk
30-
curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-amd64 --output /usr/local/bin/bazelisk
30+
curl -fsSL https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-amd64 --output /usr/local/bin/bazelisk
3131
chmod +x /usr/local/bin/bazelisk
3232

3333
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
3434

35+
# Install uv
36+
curl -fsSL https://astral.sh/uv/install.sh | env UV_UNMANAGED_INSTALL="/usr/local/bin" sh
37+
38+
mkdir -p /usr/local/python
39+
# Install Python using uv
40+
UV_PYTHON_VERSION=3.10
41+
uv python install --install-dir /usr/local/python "$UV_PYTHON_VERSION"
42+
43+
export UV_PYTHON_INSTALL_DIR=/usr/local/python
44+
# Make Python from uv the default by creating symlinks
45+
UV_PYTHON_BIN="$(uv python find --no-project "$UV_PYTHON_VERSION")"
46+
echo "uv python binary location: $UV_PYTHON_BIN"
47+
ln -s "$UV_PYTHON_BIN" "/usr/local/bin/python${UV_PYTHON_VERSION}"
48+
ln -s "$UV_PYTHON_BIN" /usr/local/bin/python3
49+
ln -s "$UV_PYTHON_BIN" /usr/local/bin/python
50+
51+
# As a convention, we pin all python packages to a specific version. This
52+
# is to to make sure we can control version upgrades through code changes.
53+
uv pip install --system pip==25.2 cffi==1.16.0
54+
3555
# A non-root user. Use 2000, which is the same as our buildkite agent VM uses.
3656
adduser --home /home/forge --uid 2000 forge --gid 100
3757
usermod -a -G docker forge

ci/docker/forge.Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ apt-get install -y ca-certificates curl zip unzip sudo gnupg tzdata git apt-tran
2424
mkdir -p /etc/apt/keyrings
2525
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
2626
# Download and install Microsoft signing key
27-
curl -sLS https://packages.microsoft.com/keys/microsoft.asc |
27+
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc |
2828
gpg --dearmor | tee /etc/apt/keyrings/microsoft.gpg > /dev/null
2929
chmod go+r /etc/apt/keyrings/microsoft.gpg
3030

3131
echo \
3232
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
3333
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
34-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
34+
tee /etc/apt/sources.list.d/docker.list > /dev/null
3535

3636
# Add NodeJS APT repository
3737
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
@@ -45,7 +45,7 @@ URIs: https://packages.microsoft.com/repos/azure-cli/
4545
Suites: ${AZ_DIST}
4646
Components: main
4747
Architectures: $(dpkg --print-architecture)
48-
Signed-by: /etc/apt/keyrings/microsoft.gpg" | sudo tee /etc/apt/sources.list.d/azure-cli.sources
48+
Signed-by: /etc/apt/keyrings/microsoft.gpg" | tee /etc/apt/sources.list.d/azure-cli.sources
4949

5050
# Install packages
5151

@@ -57,10 +57,10 @@ apt-get install -y \
5757
azure-cli="${AZ_VER}"-1~"${AZ_DIST}"
5858

5959
# Install uv
60-
wget -qO- https://astral.sh/uv/install.sh | sudo env UV_UNMANAGED_INSTALL="/usr/local/bin" sh
60+
curl -fsSL https://astral.sh/uv/install.sh | env UV_UNMANAGED_INSTALL="/usr/local/bin" sh
6161

6262
mkdir -p /usr/local/python
63-
# Install Python 3.9 using uv
63+
# Install Python using uv
6464
UV_PYTHON_VERSION=3.10
6565
uv python install --install-dir /usr/local/python "$UV_PYTHON_VERSION"
6666

0 commit comments

Comments
 (0)