name: EE Workflows Build Guard on: pull_request: paths: - server/** - ee/server/** - packages/workflows/** - scripts/guard-ee-workflows-next-build.mjs - scripts/guard-no-legacy-workflows-shims.mjs - .github/workflows/workflows-ee-build-guard.yml push: branches: - main paths: - server/** - ee/server/** - packages/workflows/** - scripts/guard-ee-workflows-next-build.mjs - scripts/guard-no-legacy-workflows-shims.mjs - .github/workflows/workflows-ee-build-guard.yml jobs: ee-workflows-build-guard: runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Upgrade npm to version 11 run: npm install -g npm@11 - name: Install dependencies run: | if ! npm ci; then echo "npm ci failed; attempting npm install fallback to regenerate lock data" npm install --legacy-peer-deps fi - name: Provide build-time env run: | cp .env.example server/.env - name: Build server (EE) env: EDITION: ee NEXT_PUBLIC_EDITION: enterprise USE_PREBUILT: 'true' run: | npx nx build-deps server --output-style=static # Override the 8 GB cap baked into server/package.json's build script; # the EE webpack build hits the heap limit on ubuntu-latest at 8 GB. # 14 GB leaves ~2 GB headroom on the 16 GB runner for the OS and other processes. cd server NODE_OPTIONS='--max-old-space-size=14336' NODE_ENV=production npx next build --webpack - name: "Guard: legacy workflows shims removed" run: node scripts/guard-no-legacy-workflows-shims.mjs - name: "Guard: no OSS workflows stub in EE output" run: node scripts/guard-ee-workflows-next-build.mjs server/.next