Initial commit: ReTeamSpeak cross-platform TeamSpeak client
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
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
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
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"]
|
||||
Reference in New Issue
Block a user