diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 5193e5a7..fc0fbf1a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -76,6 +76,8 @@ jobs: cache: true cache-mode: max cache-scope: synctv-image + build-args: | + SYNCTV_CARGO_BUILD_PROFILE=${{ github.event_name == 'pull_request' && 'dev' || 'release' }} set-meta-annotations: true set-meta-labels: true meta-images: ${{ needs.docker-prepare.outputs.meta-images }} diff --git a/Dockerfile b/Dockerfile index a69f5bcf..625e7e27 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,7 @@ ENV SQLX_OFFLINE=true ARG SYNCTV_BUILD_NO_DEFAULT_FEATURES=false ARG SYNCTV_BUILD_FEATURES="k8s,mimalloc,openapi" ARG SYNCTV_CARGO_BUILD_ARGS="" +ARG SYNCTV_CARGO_BUILD_PROFILE=release ARG TARGETARCH # Copy entire source tree @@ -38,7 +39,11 @@ COPY . . RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/usr/local/cargo/git \ --mount=type=cache,id=synctv-target-${TARGETARCH},target=/app/target,sharing=locked \ - build_flags="--release --bin synctv"; \ + case "$SYNCTV_CARGO_BUILD_PROFILE" in \ + dev|release) ;; \ + *) echo "Unsupported SYNCTV_CARGO_BUILD_PROFILE: $SYNCTV_CARGO_BUILD_PROFILE" >&2; exit 1 ;; \ + esac; \ + build_flags="--profile $SYNCTV_CARGO_BUILD_PROFILE --bin synctv"; \ if [ -n "$SYNCTV_CARGO_BUILD_ARGS" ]; then \ build_flags="$build_flags $SYNCTV_CARGO_BUILD_ARGS"; \ fi; \ @@ -49,7 +54,7 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ build_flags="$build_flags --features $SYNCTV_BUILD_FEATURES"; \ fi; \ cargo +nightly build $build_flags && \ - cp /app/target/release/synctv /tmp/synctv + cp "/app/target/$SYNCTV_CARGO_BUILD_PROFILE/synctv" /tmp/synctv # Stage 2: Runtime image FROM debian:trixie-slim