fix(ci): unify local dependency redirection across all pipeline stages and align docker paths
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🧪 QA (push) Successful in 53s
Build & Deploy / 🏗️ Build (push) Failing after 3m5s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s

This commit is contained in:
2026-03-03 20:39:24 +01:00
parent 6a14c9924f
commit 1c87d5341e
2 changed files with 19 additions and 14 deletions

View File

@@ -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 }}"

View File

@@ -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 . .