hvisor ci test优化进展记录

hvisor ci test优化

目前进展(7.17)

1.根据ci.yml编写dockerfile

# 使用 Ubuntu 作为基础镜像
FROM ubuntu:22.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive

# 更新系统并安装必要的依赖
RUN apt-get update && apt-get install -y \
    build-essential \ 
    qemu-system-aarch64 \
    qemu-system-riscv64 \
    gdb-multiarch \
    llvm-dev \
    libclang-dev \
    wget \
    u-boot-tools \
    expect \
    device-tree-compiler \
    p7zip-full \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 设置 Rust 镜像源
ENV RUSTUP_DIST_SERVER="https://mirrors.ustc.edu.cn/rust-static"
ENV RUSTUP_UPDATE_ROOT="https://mirrors.ustc.edu.cn/rust-static/rustup"

# 安装 Rust
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y

# 设置 PATH
ENV PATH="/root/.cargo/bin:${PATH}"

# 配置 cargo 使用国内镜像源
RUN mkdir -p /root/.cargo && \
    echo '[source.crates-io]' > /root/.cargo/config && \
    echo 'replace-with = "ustc"' >> /root/.cargo/config && \
    echo '' >> /root/.cargo/config && \
    echo '[source.ustc]' >> /root/.cargo/config && \
    echo 'registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"' >> /root/.cargo/config

# 安装 Rust 目标和组件
RUN rustup target add aarch64-unknown-none \
        riscv64gc-unknown-none-elf \
        loongarch64-unknown-none \
        x86_64-unknown-none && \
    rustup component add rust-src rustfmt

# 安装 Cargo 工具(使用缓存和超时设置)
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/app/target \
    CARGO_HTTP_TIMEOUT=120 \
    CARGO_NET_RETRY=10 \
    cargo install --locked --version 0.3.0 cargo-binutils && \
    cargo install --locked cargo-xbuild

# 下载 LoongArch 交叉工具链
COPY loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz .
RUN tar -xf loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz && \
    rm loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz

# 设置交叉编译工具链路径
ENV PATH="/cross-tools/bin:${PATH}"

# 设置工作目录
WORKDIR /app

2.构建出docker镜像

1752726335133

3.修改ci.yml文件进行调用

#用于登录 GitHub 容器注册表(GHCR),确保能拉取私有镜像 ghcr.io/jaxtonmax/hvisor-ci:latest。
      - name: Log in to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      
      - name: Run linter in container
        run: |
          docker run --rm -v "$(pwd):/workdir" -w /workdir \
            ghcr.io/jaxtonmax/hvisor-ci:latest \
            make fmt-test

  

4.提交ci测试,还有部分报错没有解决

1752726510774

目前的问题

报错1:unittest:

怀疑: qemu版本问题

一直提示不结束:

怀疑: 编译器要求所有非标准 cfg 条件必须显式声明,否则会抛出警告。这些警告在 CI 环境下可能被重复打印。
1752726630578

报错2:systemtest:

怀疑:问题在于脚本执行过程中无法找到 sudo 命令,导致挂载操作失败
1752726799747

下一步目标

1.升级qemu环境解决unittest error

2.查看环境 \ 尝试不使用sudo挂载 解决systemerror

posted @ 2025-07-20 23:56  Jaxton  阅读(19)  评论(0)    收藏  举报