Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
2d465cb
feat: add Docker image build workflow
xashr Jul 11, 2026
986029a
chore: add workflow_dispatch for testing
xashr Jul 11, 2026
0f5784c
fix: replace slash in cache tag (linux/amd64 → amd64)
xashr Jul 11, 2026
ffc67b7
fix: use arch field in artifact names (avoid /)
xashr Jul 11, 2026
708704a
chore(docker): fix hardcoded URLs, add OCI annotations, strict merge
xashr Jul 11, 2026
f8cf888
enable cuda, disable cpu
xashr Jul 11, 2026
f619124
feat: add CUDA 13.3.0 image to Docker workflow
xashr Jul 11, 2026
565b9ad
chore: add .idea/ to .gitignore
xashr Jul 11, 2026
93dcee7
fix: cleanup docker workflow name and trigger order
xashr Jul 11, 2026
fff069b
refactor: use date-based tags for immutable Docker images
xashr Jul 11, 2026
e6e92da
remove healthcheck
xashr Jul 11, 2026
6239f7e
fix(docker): disable GGML_NATIVE for portable CPU binaries
xashr Jul 12, 2026
719c671
chore(docker): enable CPU builds, disable CUDA builds
xashr Jul 12, 2026
416232f
ci(docker): add commit SHA to tags and skip builds with no new commits
xashr Jul 12, 2026
9562d1e
ci(docker): temporarily schedule builds every hour for testing
xashr Jul 12, 2026
579877f
ci(docker): schedule builds every 30 minutes for testing
xashr Jul 12, 2026
56763ab
ci(docker): schedule builds at :10 and :40 past each hour
xashr Jul 12, 2026
ce49860
ci(docker): add force_build input and revert to daily schedule
xashr Jul 12, 2026
3ee7d86
ci(docker): upgrade GitHub Actions to latest major versions
xashr Jul 12, 2026
5d78123
ci(docker): improve job display names
xashr Jul 12, 2026
512d9f2
style: align Docker comment headers to 80-char width
xashr Jul 12, 2026
6adad5f
docker.yml minor change
xashr Jul 13, 2026
aa5fe36
permissions, comment
xashr Jul 13, 2026
e5b6b7b
enable cuda
xashr Jul 13, 2026
ec94d47
enable cuda13
xashr Jul 13, 2026
219d434
enable cuda13
xashr Jul 13, 2026
fb40ee9
improve build failure handling for merge
xashr Jul 13, 2026
c9927fb
test
xashr Jul 13, 2026
edcf810
test error
xashr Jul 13, 2026
8ca7840
remove test code
xashr Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 7 additions & 15 deletions .devops/cpu.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
# Usage:
# docker build -f .devops/cpu.Dockerfile -t local/audiocpp:full-cpu .

# ============================================================
# [BUILD] Compile all release binaries
# ============================================================
# ── BUILD: Compile all release binaries ───────────────────────────────────────
ARG UBUNTU_VERSION=24.04
ARG BUILD_DATE=N/A
ARG APP_VERSION=N/A
Expand All @@ -28,12 +26,13 @@ ENV CC=gcc-${GCC_VERSION} CXX=g++-${GCC_VERSION}
WORKDIR /app
COPY . .

# Configure
# Configure and build
RUN cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DENGINE_ENABLE_CUDA=OFF \
-DENGINE_ENABLE_VULKAN=OFF \
-DENGINE_ENABLE_OPENMP=ON \
-DENGINE_ENABLE_NATIVE_CPU=OFF \
-DENGINE_BUILD_EXAMPLES=OFF \
-DENGINE_BUILD_TESTS=OFF \
-DENGINE_BUILD_WARMBENCH=OFF && \
Expand All @@ -50,16 +49,14 @@ RUN mkdir -p /app/full && \
cp .devops/entrypoint.sh /app/full/entrypoint.sh && \
chmod +x /app/full/entrypoint.sh

# ============================================================
# [BASE] Shared runtime (OS + common libs)
# ============================================================
# ── BASE: Shared runtime (OS + common libs) ───────────────────────────────────
FROM docker.io/ubuntu:$UBUNTU_VERSION AS base

ARG BUILD_DATE=N/A
ARG APP_VERSION=N/A
ARG APP_REVISION=N/A
ARG IMAGE_URL=https://github.com/0xShug0/audio.cpp
ARG IMAGE_SOURCE=https://github.com/0xShug0/audio.cpp
ARG IMAGE_URL=N/A
ARG IMAGE_SOURCE=N/A

LABEL org.opencontainers.image.created=$BUILD_DATE \
org.opencontainers.image.version=$APP_VERSION \
Expand All @@ -81,16 +78,11 @@ RUN apt-get update && \

WORKDIR /app

# ============================================================
# [FULL] All binaries + entrypoint.sh multiplexer
# ============================================================
# ── FULL: All binaries + entrypoint.sh multiplexer ────────────────────────────
FROM base AS full

COPY --from=build /app/full /app

USER ubuntu

HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=15s \
CMD curl -f http://localhost:8080/health || exit 1

ENTRYPOINT ["/app/entrypoint.sh"]
25 changes: 8 additions & 17 deletions .devops/cuda.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
# Usage:
# docker build -f .devops/cuda.Dockerfile -t local/audiocpp:full-cuda .

# ============================================================
# [BUILD] Compile all release binaries with CUDA
# ============================================================
# ── BUILD: Compile all release binaries with CUDA ─────────────────────────────
ARG UBUNTU_VERSION=24.04
ARG CUDA_VERSION=12.9.0
ARG CUDA_VERSION=12.9.2
ARG BUILD_DATE=N/A
ARG APP_VERSION=N/A
ARG APP_REVISION=N/A
Expand All @@ -32,13 +30,14 @@ ENV CC=gcc-${GCC_VERSION} CXX=g++-${GCC_VERSION} CUDAHOSTCXX=g++-${GCC_VERSION}
WORKDIR /app
COPY . .

# Configure
# Configure and build
RUN cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DENGINE_ENABLE_CUDA=ON \
-DENGINE_ENABLE_CUDA_GRAPHS=ON \
-DENGINE_ENABLE_VULKAN=OFF \
-DENGINE_ENABLE_OPENMP=ON \
-DENGINE_ENABLE_NATIVE_CPU=OFF \
-DENGINE_BUILD_EXAMPLES=OFF \
-DENGINE_BUILD_TESTS=OFF \
-DENGINE_BUILD_WARMBENCH=OFF && \
Expand All @@ -55,16 +54,14 @@ RUN mkdir -p /app/full && \
cp .devops/entrypoint.sh /app/full/entrypoint.sh && \
chmod +x /app/full/entrypoint.sh

# ============================================================
# [BASE] Shared runtime (NVIDIA CUDA + common libs)
# ============================================================
# ── BASE: Shared runtime (NVIDIA CUDA + common libs) ──────────────────────────
FROM ${BASE_CUDA_RUN_CONTAINER} AS base

ARG BUILD_DATE=N/A
ARG APP_VERSION=N/A
ARG APP_REVISION=N/A
ARG IMAGE_URL=https://github.com/0xShug0/audio.cpp
ARG IMAGE_SOURCE=https://github.com/0xShug0/audio.cpp
ARG IMAGE_URL=N/A
ARG IMAGE_SOURCE=N/A

LABEL org.opencontainers.image.created=$BUILD_DATE \
org.opencontainers.image.version=$APP_VERSION \
Expand All @@ -86,17 +83,11 @@ RUN apt-get update && \

WORKDIR /app

# ============================================================
# [FULL] All binaries + entrypoint.sh multiplexer
# ============================================================
# ── FULL: All binaries + entrypoint.sh multiplexer ────────────────────────────
FROM base AS full

COPY --from=build /app/full /app

USER ubuntu

HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=15s \
CMD curl -f http://localhost:8080/health || exit 1

ENTRYPOINT ["/app/entrypoint.sh"]

Loading
Loading