Skip to content

Commit 8837602

Browse files
authored
Merge pull request #17 from drewpayment/16-bug-gh-action-failing-after-converting-to-bun-package-manager
refactor: migrate from pnpm to bun
2 parents 28339a3 + 704135e commit 8837602

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
lines changed

Dockerfile

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Build with: docker build -t IMAGE_NAME .
22
# Run with: docker run -p 3000:3000 --rm --name IMAGE_NAME IMAGE_NAME
33

4-
FROM node:20-slim AS builder
4+
FROM oven/bun:1 AS builder
55
WORKDIR /staging
66

77
# Install necessary build dependencies
@@ -12,31 +12,28 @@ RUN apt-get update && apt-get install -y \
1212
&& rm -rf /var/lib/apt/lists/*
1313

1414
# Copy package files first for better caching
15-
COPY package.json pnpm-lock.yaml ./
15+
COPY package.json bun.lockb* ./
1616

17-
# Enable corepack and install dependencies
18-
RUN corepack enable && \
19-
pnpm install --frozen-lockfile
17+
# Install dependencies
18+
RUN bun install --frozen-lockfile
2019

2120
# Copy the rest of the application
2221
COPY . .
2322

2423
# Generate Drizzle models first, then build
25-
RUN pnpm generate-migrations:postgres && \
26-
pnpm generate-migrations:mysql && \
27-
pnpm build && \
28-
pnpm prune --prod
24+
RUN bun run generate-migrations:postgres && \
25+
bun run generate-migrations:mysql && \
26+
bun run build
2927

30-
FROM node:20-slim
28+
FROM oven/bun:1-slim
3129
ARG ORIGIN=http://localhost:3000
3230
ENV ORIGIN=$ORIGIN
3331
WORKDIR /app
3432

3533
# Copy necessary files from builder
36-
COPY --from=builder /staging/package.json /staging/pnpm-lock.yaml ./
34+
COPY --from=builder /staging/package.json ./
3735
COPY --from=builder /staging/node_modules ./node_modules
3836
COPY --from=builder /staging/build ./build
39-
COPY --from=builder /staging/.tunnel_key ./.tunnel_key
4037

4138
EXPOSE 3000
42-
CMD ["node", "-r", "dotenv/config", "./build/index.js"]
39+
CMD ["bun", "run", "./build/index.js"]

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
1111
"lint": "prettier --plugin-search-dir . --check . && eslint .",
1212
"format": "prettier --plugin-search-dir . --write .",
13-
"generate-migrations:mysql": "drizzle-kit generate:mysql --config=src/lib/drizzle/mysql/drizzle.config.ts",
14-
"generate-migrations:postgres": "drizzle-kit generate:pg --config=src/lib/drizzle/postgres/drizzle.config.ts",
13+
"generate-migrations:mysql": "drizzle-kit generate --config=src/lib/drizzle/mysql/drizzle.config.ts",
14+
"generate-migrations:postgres": "drizzle-kit generate --config=src/lib/drizzle/postgres/drizzle.config.ts",
1515
"generate-migrations:turso": "drizzle-kit generate:turso --config=src/lib/drizzle/turso/drizzle.config.ts",
1616
"push:mysql": "drizzle-kit push --config=src/lib/drizzle/mysql/drizzle.config.ts",
1717
"push:pg": "drizzle-kit push --config=src/lib/drizzle/postgres/drizzle.config.ts ",

src/lib/drizzle/mysql/client.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ const getPrivateKey = async (): Promise<string> => {
3232
// Otherwise use the direct key value
3333
if (TUNNEL_PRIVATE_KEY) {
3434
debug('Using provided SSH private key...');
35-
return TUNNEL_PRIVATE_KEY;
35+
const base64TunnelPrivateKey = TUNNEL_PRIVATE_KEY;
36+
37+
return Buffer.from(base64TunnelPrivateKey, 'base64').toString('utf8');
3638
}
3739

3840
throw new Error('No private key provided. Set either TUNNEL_PRIVATE_KEY or TUNNEL_PRIVATE_KEY_PATH');
@@ -128,7 +130,7 @@ const createConnection = async (): Promise<Connection> => {
128130
const debugLogger = TUNNEL_DEBUG === 'true' ? console.log : undefined;
129131

130132
const [server] = await createTunnel(
131-
{
133+
{
132134
debug: TUNNEL_DEBUG === 'true',
133135
debugLogger,
134136
keepAlive: true

src/lib/drizzle/mysql/drizzle.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ dotenv.config();
55

66
export default {
77
schema: './src/lib/drizzle/mysql/schema.ts',
8-
driver: 'mysql2',
8+
dialect: 'mysql',
99
dbCredentials: {
1010
host: process.env.MYSQL_DB_HOST as string,
1111
port: Number(process.env.MYSQL_DB_PORT),

0 commit comments

Comments
 (0)