Compare commits

...

3 Commits

Author SHA1 Message Date
258eb9464e fix(deploy): throttle build workers to 1 to prevent OOM and fix entrypoint
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 18s
Build & Deploy / 🧪 Post-Deploy Verification (push) Failing after 7m32s
Build & Deploy / 🧪 QA (push) Successful in 1m49s
Build & Deploy / 🏗️ Build (push) Successful in 36m51s
Build & Deploy / 🚀 Deploy (push) Successful in 1m22s
Build & Deploy / 🔔 Notify (push) Successful in 4s
2026-04-10 13:44:15 +02:00
015386ba4a fix(deploy): pass build-time secrets and fix standalone path resolution
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 8s
Build & Deploy / 🏗️ Build (push) Failing after 33m41s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 QA (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 7s
2026-04-10 13:13:00 +02:00
49abaaf2fd fix(web): increase build memory to 8GB and support smooth-scroll in IframeSection
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 8s
Build & Deploy / 🏗️ Build (push) Successful in 16m45s
Build & Deploy / 🚀 Deploy (push) Successful in 19s
Build & Deploy / 🧪 QA (push) Successful in 1m9s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 3m9s
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-04-10 11:37:09 +02:00
7 changed files with 54 additions and 6 deletions

View File

@@ -316,6 +316,8 @@ jobs:
S3_BUCKET=${{ secrets.S3_BUCKET || vars.S3_BUCKET || 'mintel' }}
S3_REGION=${{ secrets.S3_REGION || vars.S3_REGION || 'fsn1' }}
S3_PREFIX=${{ secrets.S3_PREFIX || vars.S3_PREFIX || 'mintel.me' }}
DATABASE_URI=${{ secrets.DATABASE_URI || (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_DB_PASSWORD && format('postgres://directus:{0}@postgres-db:5432/directus', secrets.TESTING_DIRECTUS_DB_PASSWORD)) || 'postgres://payload:payload@postgres-db:5432/payload' }}
PAYLOAD_SECRET=${{ secrets.PAYLOAD_SECRET || 'secret' }}
BUILD_ID=${{ github.sha }}
tags: registry.infra.mintel.me/mintel/mintel.me:${{ needs.prepare.outputs.image_tag }}
cache-from: type=registry,ref=registry.infra.mintel.me/mintel/mintel.me:buildcache-${{ needs.prepare.outputs.target }}

View File

@@ -13,6 +13,8 @@ ARG S3_SECRET_KEY
ARG S3_BUCKET
ARG S3_REGION
ARG S3_PREFIX
ARG DATABASE_URI
ARG PAYLOAD_SECRET
ARG BUILD_ID
# Environment variables for Next.js build
@@ -25,7 +27,10 @@ ENV S3_SECRET_KEY=$S3_SECRET_KEY
ENV S3_BUCKET=$S3_BUCKET
ENV S3_REGION=$S3_REGION
ENV S3_PREFIX=$S3_PREFIX
ENV DATABASE_URI=$DATABASE_URI
ENV PAYLOAD_SECRET=$PAYLOAD_SECRET
ENV SKIP_RUNTIME_ENV_VALIDATION=true
ENV NEXT_BUILD_WORKERS=1
ENV CI=true
# Copy manifest files specifically for better layer caching
@@ -55,7 +60,7 @@ RUN echo "Building with ID: ${BUILD_ID}"
COPY . .
# Build application (monorepo filter)
ENV NODE_OPTIONS="--max_old_space_size=4096"
ENV NODE_OPTIONS="--max_old_space_size=8192"
RUN pnpm --filter @mintel/web build
# Stage 2: Runner
@@ -78,5 +83,6 @@ RUN chown -R 1001:65533 /app
USER nextjs
# Start from the app directory to ensure references solve correctly
WORKDIR /app/apps/web
# In Standalone mode, Next.js expects node_modules and public relative to the server.js
WORKDIR /app
CMD ["node", "server.js"]

View File

@@ -1,7 +1,7 @@
FROM node:20-alpine
# Install essential build tools if needed (e.g., for node-gyp)
RUN apk add --no-cache libc6-compat python3 make g++
RUN apk add --no-cache libc6-compat git python3 make g++
WORKDIR /app

View File

@@ -196,11 +196,13 @@ export const IframeSection: React.FC<IframeSectionProps> = ({
const updateScrollState = React.useCallback(() => {
try {
const win = iframeRef.current?.contentWindow;
const doc = iframeRef.current?.contentDocument?.documentElement;
if (doc) {
const atTop = doc.scrollTop <= 5;
if (doc && win) {
const scrollTop = doc.scrollTop || win.scrollY || 0;
const atTop = scrollTop <= 5;
const atBottom =
doc.scrollTop + doc.clientHeight >= doc.scrollHeight - 5;
scrollTop + doc.clientHeight >= doc.scrollHeight - 5;
const isScrollable = doc.scrollHeight > doc.clientHeight + 10;
setScrollState({ atTop, atBottom, isScrollable });
}

View File

@@ -31,6 +31,7 @@ services:
# - CI=true
- NPM_TOKEN=${NPM_TOKEN:-}
- DATABASE_URI=postgres://${postgres_DB_USER:-payload}:${postgres_DB_PASSWORD:-payload}@postgres-db:5432/${postgres_DB_NAME:-payload}
- QDRANT_URL=http://qdrant:6333
- PAYLOAD_SECRET=dev-secret
command: >
sh -c "pnpm install --no-frozen-lockfile && pnpm --filter @mintel/web dev"

36
scripts/visual_debug.mjs Normal file
View File

@@ -0,0 +1,36 @@
import puppeteer from 'puppeteer';
(async () => {
// Launch browser
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
// Set viewport
await page.setViewport({ width: 1920, height: 1080 });
try {
console.log("Navigating to case study page...");
await page.goto('https://mintel.me/case-studies/klz-cables', { waitUntil: 'networkidle2' });
console.log("Waiting a bit for iframes to load...");
await new Promise(r => setTimeout(r, 5000));
// Let's get console logs from the page too
page.on('console', msg => console.log('PAGE LOG:', msg.text()));
console.log("Taking screenshot...");
await page.screenshot({ path: '/Users/marcmintel/Projects/mintel.me/screenshot_case_study.png', fullPage: true });
// Also take a screenshot of the actual showcase HTML page directly to compare
console.log("Navigating directly to showcase HTML...");
await page.goto('https://mintel.me/showcase/klz-cables.com/power-cables-medium-voltage-cables.html', { waitUntil: 'networkidle2' });
await new Promise(r => setTimeout(r, 3000));
await page.screenshot({ path: '/Users/marcmintel/Projects/mintel.me/screenshot_showcase.png', fullPage: true });
console.log("Done!");
} catch (e) {
console.error("Error:", e);
} finally {
await browser.close();
}
})();

1
wget_out.txt Normal file
View File

@@ -0,0 +1 @@
zsh:1: command not found: wget