diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 84fad67..a64a6be 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -258,7 +258,13 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - name: Provide sibling monorepo (context) - run: git clone https://git.infra.mintel.me/mmintel/at-mintel.git _at-mintel + run: | + git clone https://git.infra.mintel.me/mmintel/at-mintel.git _at-mintel + # Force ALL @mintel packages to use the local clone instead of the registry + perl -pi -e 's/"@mintel\/([^"]+)": "[^"]+"/"\@mintel\/$1": "link:.\/_at-mintel\/packages\/$1"/g' package.json + perl -pi -e 's/link:.\/_at-mintel\/packages\/pdf"/link:.\/_at-mintel\/packages\/pdf-library"/g' package.json + perl -pi -e 's/"@mintel\/([^"]+)": "[^"]+"/"\@mintel\/$1": "link:..\/\.\.\/_at-mintel\/packages\/$1"/g' apps/web/package.json + perl -pi -e 's/link:..\/\.\.\/_at-mintel\/packages\/pdf"/link:..\/\.\.\/_at-mintel\/packages\/pdf-library"/g' apps/web/package.json - name: 🐳 Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: 🔐 Prepare Registry Token @@ -517,14 +523,14 @@ jobs: run: | git clone https://git.infra.mintel.me/mmintel/at-mintel.git _at-mintel - # Fix path references for all linked packages - sed -i 's|../../../at-mintel|../../_at-mintel|g' apps/web/package.json - sed -i 's|../../../at-mintel|../../_at-mintel|g' apps/web/tsconfig.json - sed -i 's|../at-mintel|./_at-mintel|g' package.json + # Force ALL @mintel packages to use the local clone instead of the registry + perl -pi -e 's/"@mintel\/([^"]+)": "[^"]+"/"\@mintel\/$1": "link:.\/_at-mintel\/packages\/$1"/g' package.json + perl -pi -e 's/link:.\/_at-mintel\/packages\/pdf"/link:.\/_at-mintel\/packages\/pdf-library"/g' package.json + perl -pi -e 's/"@mintel\/([^"]+)": "[^"]+"/"\@mintel\/$1": "link:..\/\.\.\/_at-mintel\/packages\/$1"/g' apps/web/package.json + perl -pi -e 's/link:..\/\.\.\/_at-mintel\/packages\/pdf"/link:..\/\.\.\/_at-mintel\/packages\/pdf-library"/g' apps/web/package.json - # Force @mintel/payload-ai to use the local clone instead of the registry - sed -i 's|"@mintel/payload-ai": "[^"]*"|"@mintel/payload-ai": "link:./_at-mintel/packages/payload-ai"|g' package.json - sed -i 's|"@mintel/payload-ai": "[^"]*"|"@mintel/payload-ai": "link:../../_at-mintel/packages/payload-ai"|g' apps/web/package.json + # Fix tsconfig paths if they exist + sed -i 's|../../../at-mintel|../../_at-mintel|g' apps/web/tsconfig.json || true - name: 🔐 Registry Auth run: | TOKEN="${{ secrets.NPM_TOKEN }}" diff --git a/Dockerfile b/Dockerfile index 9cdc2bf..bc52df7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,18 +19,17 @@ ENV CI=true COPY pnpm-lock.yaml pnpm-workspace.yaml package.json .npmrc* ./ COPY apps/web/package.json ./apps/web/package.json # Copy sibling monorepo for linked dependencies (cloned during CI) -COPY _at-mintel* /at-mintel/ +COPY _at-mintel* ./_at-mintel/ # Install dependencies with cache mount and dynamic .npmrc (High Fidelity pattern) RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ --mount=type=secret,id=NPM_TOKEN \ export NPM_TOKEN=$(cat /run/secrets/NPM_TOKEN 2>/dev/null || echo $NPM_TOKEN) && \ - echo "@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm/" > /at-mintel/.npmrc && \ - echo "//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=\${NPM_TOKEN}" >> /at-mintel/.npmrc && \ - cp /at-mintel/.npmrc .npmrc && \ - cd /at-mintel && pnpm install --no-frozen-lockfile && pnpm build && \ + echo "@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm/" > .npmrc && \ + echo "//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=\${NPM_TOKEN}" >> .npmrc && \ + cd _at-mintel && pnpm install --no-frozen-lockfile && pnpm build && \ cd /app && pnpm install --no-frozen-lockfile && \ - rm /at-mintel/.npmrc .npmrc + rm .npmrc # Copy source code COPY . .