[CI] 让ds尝试它的优化

This commit is contained in:
2026-01-03 21:16:07 +08:00
parent dfd5969785
commit bf37ac1c33
2 changed files with 10 additions and 8 deletions

View File

@@ -1,7 +1,6 @@
# 第一阶段:构建基础环境 # 第一阶段:构建基础环境
FROM ubuntu:24.04 AS builder-base FROM ubuntu:24.04 AS builder-base
# 1. 设置APT镜像源加速
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
@@ -23,27 +22,30 @@ RUN wget -O /usr/local/bin/xmake \
# 第二阶段:创建最终镜像 # 第二阶段:创建最终镜像
FROM ubuntu:24.04 FROM ubuntu:24.04
# 【关键修复】在最终镜像中安装CI必需的运行时工具 # 安装CI运行时工具
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
git tar curl ca-certificates \ git tar curl ca-certificates \
# 关键安装clang运行时库解决 libclang-cpp.so.19.1 依赖
libclang-rt-19-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# 1. 复制编译器、xmake和库文件 # 复制编译器、xmake和库文件
COPY --from=builder-base /usr/local/bin/xmake /usr/local/bin/xmake COPY --from=builder-base /usr/local/bin/xmake /usr/local/bin/xmake
COPY --from=builder-base /usr/bin/clang++ /usr/bin/clang++ COPY --from=builder-base /usr/bin/clang++ /usr/bin/clang++
COPY --from=builder-base /usr/bin/clang /usr/bin/clang COPY --from=builder-base /usr/bin/clang /usr/bin/clang
COPY --from=builder-base /usr/bin/ld.lld /usr/bin/ld.lld COPY --from=builder-base /usr/bin/ld.lld /usr/bin/ld.lld
COPY --from=builder-base /usr/x86_64-w64-mingw32 /usr/x86_64-w64-mingw32 COPY --from=builder-base /usr/x86_64-w64-mingw32 /usr/x86_64-w64-mingw32
COPY --from=builder-base /usr/lib/llvm-19 /usr/lib/llvm-19 # 关键复制完整的LLVM库目录而不仅仅是/usr/lib/llvm-19
COPY --from=builder-base /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
# 2. 创建非root用户 # 设置非root用户
RUN useradd -m -s /bin/bash builder RUN useradd -m -s /bin/bash builder
USER builder USER builder
WORKDIR /home/builder WORKDIR /home/builder
# 3. 验证环境 # 验证环境
RUN xmake --version | head -1 && \ RUN xmake --version | head -1 && \
clang++ --version | head -1 && \ clang++ --version | head -1 && \
git --version && \ git --version && \

View File

@@ -10,8 +10,8 @@ target("Fig")
if is_plat("linux") then if is_plat("linux") then
-- Linux: clang + libc++ -- Linux: clang + libc++
set_toolchains("clang") set_toolchains("clang")
add_cxxflags("-stdlib=libc++") add_cxxflags("-stdlib=libc++", {force = true})
add_ldflags("-stdlib=libc++") add_ldflags("-stdlib=libc++", {force = true})
elseif is_plat("mingw") then elseif is_plat("mingw") then
-- 1. CI cross (Linux -> Windows) -- 1. CI cross (Linux -> Windows)
-- 2. local dev (Windows + llvm-mingw) -- 2. local dev (Windows + llvm-mingw)