mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-02 08:35:07 +08:00
Build the Linux LLVM helper and runtime pack before running both test lanes, and align native cache contracts with the current target policy. Full managed Sandbox gate passed.
61 lines
2.3 KiB
Docker
61 lines
2.3 KiB
Docker
ARG NODE_VERSION=24.15.0
|
|
FROM ubuntu:24.04
|
|
|
|
ARG NODE_VERSION
|
|
ARG PNPM_VERSION=11.1.3
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install --yes --no-install-recommends \
|
|
ca-certificates curl gnupg \
|
|
&& curl --fail --silent --show-error --location https://apt.llvm.org/llvm-snapshot.gpg.key \
|
|
| gpg --dearmor --output /usr/share/keyrings/llvm-snapshot.gpg \
|
|
&& echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/noble/ llvm-toolchain-noble-22 main" \
|
|
> /etc/apt/sources.list.d/llvm22.list \
|
|
&& apt-get update \
|
|
&& apt-get install --yes --no-install-recommends \
|
|
build-essential \
|
|
ca-certificates \
|
|
ccache \
|
|
clang-22 \
|
|
cmake \
|
|
curl \
|
|
git \
|
|
libclang-rt-22-dev \
|
|
libzstd-dev \
|
|
llvm-22-dev \
|
|
ninja-build \
|
|
xz-utils \
|
|
zlib1g-dev \
|
|
&& ln -sf clang-22 /usr/bin/clang \
|
|
&& ln -sf clang++-22 /usr/bin/clang++ \
|
|
&& test "$(llvm-config-22 --version)" = 22.1.8 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN curl --fail --silent --show-error --location \
|
|
--output /tmp/node.tar.xz \
|
|
"https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
|
|
&& curl --fail --silent --show-error --location \
|
|
--output /tmp/SHASUMS256.txt \
|
|
"https://nodejs.org/dist/v${NODE_VERSION}/SHASUMS256.txt" \
|
|
&& grep " node-v${NODE_VERSION}-linux-x64.tar.xz$" /tmp/SHASUMS256.txt \
|
|
| sed 's#node-v[^ ]*-linux-x64.tar.xz#/tmp/node.tar.xz#' \
|
|
| sha256sum --check --strict - \
|
|
&& tar -xJf /tmp/node.tar.xz --directory /usr/local --strip-components=1 \
|
|
&& rm /tmp/node.tar.xz /tmp/SHASUMS256.txt
|
|
|
|
RUN npm install --global "pnpm@${PNPM_VERSION}"
|
|
|
|
WORKDIR /workspace
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY packages/cli/package.json packages/cli/package.json
|
|
COPY packages/cli/scripts/warm-cache.mjs packages/cli/scripts/warm-cache.mjs
|
|
COPY packages/cli/scripts/runtime-pack-host.mjs packages/cli/scripts/runtime-pack-host.mjs
|
|
COPY packages/compiler/package.json packages/compiler/package.json
|
|
COPY packages/runtime/package.json packages/runtime/package.json
|
|
|
|
RUN pnpm install --frozen-lockfile \
|
|
&& chmod -R a+rwX /workspace
|