CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
CI/CD / Test (ubuntu-latest) (push) Failing after 2s
- tscore: Protocol implementation (packets, crypto, connection handshake) - tsaudio: Audio engine (capture, playback, codec, VAD, jitter buffer) - tsdb: SQLite database (identities, bookmarks, messages, settings) - shared: Core types and events - tauri-app: Tauri v2 desktop application with React frontend - docs: SRS, SAD, SDD documentation - CI/CD: GitHub Actions workflow - 32 unit tests passing
59 lines
1.7 KiB
Docker
59 lines
1.7 KiB
Docker
FROM debian:trixie
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
pkg-config \
|
|
build-essential \
|
|
libdbus-1-dev \
|
|
libgtk-3-dev \
|
|
libwebkit2gtk-4.1-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libssl-dev \
|
|
libasound2-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Rust
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# Install Node.js (for frontend)
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
|
apt-get install -y nodejs && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy Cargo files first for caching
|
|
COPY Cargo.toml ./
|
|
COPY shared/Cargo.toml shared/
|
|
COPY tscore/Cargo.toml tscore/
|
|
COPY tsaudio/Cargo.toml tsaudio/
|
|
COPY tsdb/Cargo.toml tsdb/
|
|
COPY tauri-app/src-tauri/Cargo.toml tauri-app/src-tauri/
|
|
|
|
# Create dummy source files for dependency caching
|
|
RUN mkdir -p shared/src && echo "pub fn dummy() {}" > shared/src/lib.rs && \
|
|
mkdir -p tscore/src && echo "pub fn dummy() {}" > tscore/src/lib.rs && \
|
|
mkdir -p tsaudio/src && echo "pub fn dummy() {}" > tsaudio/src/lib.rs && \
|
|
mkdir -p tsdb/src && echo "pub fn dummy() {}" > tsdb/src/lib.rs && \
|
|
mkdir -p tauri-app/src-tauri/src && echo "pub fn dummy() {}" > tauri-app/src-tauri/src/lib.rs
|
|
|
|
# Build dependencies (cached layer)
|
|
RUN cargo build 2>/dev/null || true
|
|
|
|
# Copy actual source
|
|
COPY . .
|
|
|
|
# Build
|
|
RUN cargo build -p shared -p tscore -p tsaudio -p tsdb
|
|
|
|
# Build frontend
|
|
RUN cd tauri-app/frontend && npm install && npm run build
|
|
|
|
# Final build
|
|
RUN cargo build
|
|
|
|
CMD ["cargo", "test", "-p", "shared", "-p", "tscore", "-p", "tsaudio", "-p", "tsdb"]
|