Skip to content

Commit a6a049e

Browse files
committed
fix(publish): enable frontend build for engine target and use turbo build
1 parent e0f2824 commit a6a049e

9 files changed

Lines changed: 20 additions & 39 deletions

.github/workflows/publish.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ jobs:
215215
--secret id=DEPOT_TOKEN,env=DEPOT_TOKEN \
216216
--build-arg BUILD_TARGET=${{ matrix.build_target }} \
217217
--build-arg BUILD_MODE=${{ steps.mode.outputs.build_mode }} \
218-
--build-arg BUILD_FRONTEND=false \
218+
--build-arg BUILD_FRONTEND=${{ matrix.build_target == 'engine' && 'true' || 'false' }} \
219219
-f ${{ matrix.docker }} \
220220
-t builder-${{ matrix.build_target }}-${{ matrix.platform }} \
221221
--load \
@@ -262,7 +262,7 @@ jobs:
262262
echo "build_frontend=true" >> $GITHUB_OUTPUT
263263
else
264264
echo "cargo_build_mode=debug" >> $GITHUB_OUTPUT
265-
echo "build_frontend=false" >> $GITHUB_OUTPUT
265+
echo "build_frontend=true" >> $GITHUB_OUTPUT
266266
fi
267267
- uses: ./.github/actions/docker-setup
268268
with:

docker/build/darwin-arm64.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ARG BUILD_TARGET=engine
99
ARG BUILD_MODE=release
1010
ARG BUILD_FRONTEND=false
1111
ARG VITE_APP_API_URL=__SAME__
12+
ARG VITE_FEATURE_FLAGS=
1213

1314
ENV BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_darwin="--sysroot=/root/osxcross/target/SDK/MacOSX11.3.sdk -isystem /root/osxcross/target/SDK/MacOSX11.3.sdk/usr/include" \
1415
CFLAGS_aarch64_apple_darwin="-B/root/osxcross/target/bin" \
@@ -35,11 +36,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
3536
export NODE_OPTIONS="--max-old-space-size=8192" && \
3637
export SKIP_NAPI_BUILD=1 && \
3738
pnpm install --ignore-scripts && \
38-
if [ -n "$VITE_APP_API_URL" ]; then \
39-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
40-
else \
41-
npx turbo build:engine -F @rivetkit/engine-frontend; \
42-
fi; \
39+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
4340
fi
4441

4542
RUN --mount=type=cache,id=cargo-registry-darwin-arm64,target=/usr/local/cargo/registry,sharing=locked \

docker/build/darwin-x64.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ARG BUILD_TARGET=engine
99
ARG BUILD_MODE=release
1010
ARG BUILD_FRONTEND=false
1111
ARG VITE_APP_API_URL=__SAME__
12+
ARG VITE_FEATURE_FLAGS=
1213

1314
ENV BINDGEN_EXTRA_CLANG_ARGS_x86_64_apple_darwin="--sysroot=/root/osxcross/target/SDK/MacOSX11.3.sdk -isystem /root/osxcross/target/SDK/MacOSX11.3.sdk/usr/include" \
1415
CFLAGS_x86_64_apple_darwin="-B/root/osxcross/target/bin" \
@@ -35,11 +36,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
3536
export NODE_OPTIONS="--max-old-space-size=8192" && \
3637
export SKIP_NAPI_BUILD=1 && \
3738
pnpm install --ignore-scripts && \
38-
if [ -n "$VITE_APP_API_URL" ]; then \
39-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
40-
else \
41-
npx turbo build:engine -F @rivetkit/engine-frontend; \
42-
fi; \
39+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
4340
fi
4441

4542
RUN --mount=type=cache,id=cargo-registry-darwin-x64,target=/usr/local/cargo/registry,sharing=locked \

docker/build/linux-arm64-gnu.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ARG BUILD_TARGET=engine
99
ARG BUILD_MODE=release
1010
ARG BUILD_FRONTEND=false
1111
ARG VITE_APP_API_URL=__SAME__
12+
ARG VITE_FEATURE_FLAGS=
1213

1314
ENV RUSTFLAGS="--cfg tokio_unstable"
1415
ENV RUSTC_WRAPPER=sccache \
@@ -22,11 +23,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
2223
export NODE_OPTIONS="--max-old-space-size=8192" && \
2324
export SKIP_NAPI_BUILD=1 && \
2425
pnpm install --ignore-scripts && \
25-
if [ -n "$VITE_APP_API_URL" ]; then \
26-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
27-
else \
28-
npx turbo build:engine -F @rivetkit/engine-frontend; \
29-
fi; \
26+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
3027
fi
3128

3229
RUN --mount=type=cache,id=cargo-registry-linux-arm64-gnu,target=/usr/local/cargo/registry,sharing=locked \

docker/build/linux-arm64-musl.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ARG BUILD_TARGET=engine
99
ARG BUILD_MODE=release
1010
ARG BUILD_FRONTEND=false
1111
ARG VITE_APP_API_URL=__SAME__
12+
ARG VITE_FEATURE_FLAGS=
1213

1314
ENV OPENSSL_DIR=/musl-aarch64 \
1415
OPENSSL_INCLUDE_DIR=/musl-aarch64/include \
@@ -28,11 +29,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
2829
export NODE_OPTIONS="--max-old-space-size=8192" && \
2930
export SKIP_NAPI_BUILD=1 && \
3031
pnpm install --ignore-scripts && \
31-
if [ -n "$VITE_APP_API_URL" ]; then \
32-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
33-
else \
34-
npx turbo build:engine -F @rivetkit/engine-frontend; \
35-
fi; \
32+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
3633
fi
3734

3835
RUN --mount=type=cache,id=cargo-registry-linux-arm64-musl,target=/usr/local/cargo/registry,sharing=locked \

docker/build/linux-x64-gnu.Dockerfile

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# BUILD_TARGET - "engine" or "rivetkit-napi"
77
# BUILD_MODE - "debug" (fast) or "release" (optimized)
88
# BUILD_FRONTEND - "true" or "false" (engine only)
9+
# VITE_FEATURE_FLAGS - comma-separated frontend features. Empty means engine UI.
910
#
1011
# Base image: docker/builder-base/linux-gnu.Dockerfile
1112
# Rebuild base: scripts/docker-builder-base/build-push.sh linux-gnu --push
@@ -15,6 +16,7 @@ ARG BUILD_TARGET=engine
1516
ARG BUILD_MODE=release
1617
ARG BUILD_FRONTEND=false
1718
ARG VITE_APP_API_URL=__SAME__
19+
ARG VITE_FEATURE_FLAGS=
1820

1921
ENV RUSTFLAGS="--cfg tokio_unstable"
2022

@@ -30,11 +32,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
3032
export NODE_OPTIONS="--max-old-space-size=8192" && \
3133
export SKIP_NAPI_BUILD=1 && \
3234
pnpm install --ignore-scripts && \
33-
if [ -n "$VITE_APP_API_URL" ]; then \
34-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
35-
else \
36-
npx turbo build:engine -F @rivetkit/engine-frontend; \
37-
fi; \
35+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
3836
fi
3937

4038
# Build binary.

docker/build/linux-x64-musl.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ARG BUILD_TARGET=engine
99
ARG BUILD_MODE=release
1010
ARG BUILD_FRONTEND=false
1111
ARG VITE_APP_API_URL=__SAME__
12+
ARG VITE_FEATURE_FLAGS=
1213

1314
ENV OPENSSL_DIR=/musl-x86_64 \
1415
OPENSSL_INCLUDE_DIR=/musl-x86_64/include \
@@ -27,11 +28,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
2728
export NODE_OPTIONS="--max-old-space-size=8192" && \
2829
export SKIP_NAPI_BUILD=1 && \
2930
pnpm install --ignore-scripts && \
30-
if [ -n "$VITE_APP_API_URL" ]; then \
31-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
32-
else \
33-
npx turbo build:engine -F @rivetkit/engine-frontend; \
34-
fi; \
31+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
3532
fi
3633

3734
RUN --mount=type=cache,id=cargo-registry-linux-x64-musl,target=/usr/local/cargo/registry,sharing=locked \

docker/build/windows-x64.Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ARG BUILD_TARGET=engine
1515
ARG BUILD_MODE=release
1616
ARG BUILD_FRONTEND=false
1717
ARG VITE_APP_API_URL=__SAME__
18+
ARG VITE_FEATURE_FLAGS=
1819

1920
# Windows-specific build flags:
2021
# - lld linker is ~5x faster than MinGW's default ld for big Rust binaries.
@@ -35,11 +36,7 @@ RUN if [ "$BUILD_TARGET" = "engine" ] && [ "$BUILD_FRONTEND" = "true" ]; then \
3536
export NODE_OPTIONS="--max-old-space-size=8192" && \
3637
export SKIP_NAPI_BUILD=1 && \
3738
pnpm install --ignore-scripts && \
38-
if [ -n "$VITE_APP_API_URL" ]; then \
39-
VITE_APP_API_URL="${VITE_APP_API_URL}" npx turbo build:engine -F @rivetkit/engine-frontend; \
40-
else \
41-
npx turbo build:engine -F @rivetkit/engine-frontend; \
42-
fi; \
39+
VITE_APP_API_URL="${VITE_APP_API_URL}" VITE_FEATURE_FLAGS="${VITE_FEATURE_FLAGS}" npx turbo build -F @rivetkit/engine-frontend; \
4340
fi
4441

4542
RUN --mount=type=cache,id=cargo-registry-windows-x64,target=/usr/local/cargo/registry,sharing=locked \

docker/engine/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ FROM ghcr.io/rivet-dev/rivet/engine-base-builder:a36b881 AS builder
77
# Docker automatically provides TARGETARCH
88
ARG TARGETARCH
99

10+
ARG BUILD_FRONTEND=false
1011
ARG VITE_FEATURE_FLAGS=
1112
ARG CARGO_BUILD_MODE=debug
1213
ARG VITE_APP_API_URL=__SAME__
@@ -21,9 +22,9 @@ COPY . .
2122
# `lefthook install`, which needs a .git directory (excluded by
2223
# .dockerignore). lefthook is a dev-only git hook manager and has no
2324
# place inside the Docker build. SKIP_NAPI_BUILD=1 tells
24-
# @rivetkit/rivetkit-napi to skip its napi build — the frontend only
25+
# @rivetkit/rivetkit-napi to skip its napi build. The frontend only
2526
# consumes the TypeScript surface, not the runtime .node binary.
26-
RUN if [ -n "$VITE_FEATURE_FLAGS" ]; then \
27+
RUN if [ "$BUILD_FRONTEND" = "true" ]; then \
2728
export NODE_OPTIONS="--max-old-space-size=8192" && \
2829
export SKIP_NAPI_BUILD=1 && \
2930
pnpm install --ignore-scripts && \

0 commit comments

Comments
 (0)