mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
- Updated the Dockerfile to include additional system dependencies for E2E testing, such as xvfb, dbus, and webkit2gtk-driver, along with the installation of tauri-driver. - Modified the docker-compose.yml to use the shared CI image for E2E tests, streamlining the build process and ensuring consistency across environments. - Deprecated the previous E2E Dockerfile, consolidating the setup into the CI image for improved maintainability and reduced redundancy. - Adjusted the GitHub Actions workflow to reflect changes in the Dockerfile and ensure proper context for building the image.
62 lines
2.1 KiB
Docker
62 lines
2.1 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# System deps for Tauri + mold linker + clang + E2E testing (xvfb, dbus, webkit2gtk-driver)
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
cmake \
|
|
curl \
|
|
ca-certificates \
|
|
git \
|
|
pkg-config \
|
|
libgtk-3-dev \
|
|
libwebkit2gtk-4.1-dev \
|
|
libappindicator3-dev \
|
|
librsvg2-dev \
|
|
patchelf \
|
|
mold \
|
|
clang \
|
|
libclang-dev \
|
|
libssl-dev \
|
|
xvfb \
|
|
at-spi2-core \
|
|
dbus-x11 \
|
|
webkit2gtk-driver \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Rust 1.93.0 with minimal profile + fmt/clippy
|
|
ENV RUSTUP_HOME=/usr/local/rustup \
|
|
CARGO_HOME=/usr/local/cargo \
|
|
PATH="/usr/local/cargo/bin:$PATH"
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \
|
|
-y --default-toolchain 1.93.0 --profile minimal \
|
|
-c rustfmt -c clippy \
|
|
-t x86_64-unknown-linux-gnu
|
|
|
|
# Node.js 24.x + yarn
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
|
|
&& apt-get install -y --no-install-recommends nodejs \
|
|
&& npm install -g yarn
|
|
|
|
# Install ALSA, X11, input, and E2E automation dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libasound2-dev libxdo-dev libxtst-dev libx11-dev libevdev-dev \
|
|
webkit2gtk-driver \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# sccache (pre-installed so the action only needs to configure it)
|
|
RUN curl -fsSL https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-x86_64-unknown-linux-musl.tar.gz \
|
|
| tar xz -C /usr/local/bin --strip-components=1 sccache-v0.10.0-x86_64-unknown-linux-musl/sccache \
|
|
&& chmod +x /usr/local/bin/sccache
|
|
|
|
# tauri-driver (WebDriver server for Tauri E2E tests)
|
|
RUN cargo install tauri-driver --version 2.0.5
|
|
|
|
# E2E entrypoint (starts Xvfb + dbus for headless webkit2gtk testing)
|
|
COPY e2e/docker-entrypoint.sh /docker-entrypoint.sh
|
|
RUN chmod +x /docker-entrypoint.sh
|
|
|
|
# Verify installs
|
|
RUN rustc --version && cargo --version && node --version && yarn --version && mold --version && sccache --version && tauri-driver --version
|