diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4605c9227c..c1dc73e648 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,7 @@ jobs: uses: actions/checkout@v4 - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: ${{ secrets.DEV_AWS_ROLE_TO_ASSUME }} aws-region: ${{ secrets.DEV_AWS_REGION }} @@ -80,7 +80,7 @@ jobs: uses: aws-actions/amazon-ecr-login@v2 - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -135,7 +135,7 @@ jobs: uses: actions/checkout@v6 - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }} aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }} @@ -145,14 +145,14 @@ jobs: uses: aws-actions/amazon-ecr-login@v2 - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GHCR if: github.ref == 'refs/heads/main' - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -234,7 +234,7 @@ jobs: uses: actions/checkout@v6 - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -286,7 +286,7 @@ jobs: steps: - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/docs-embeddings.yml b/.github/workflows/docs-embeddings.yml index c59380f19f..13e2febbd3 100644 --- a/.github/workflows/docs-embeddings.yml +++ b/.github/workflows/docs-embeddings.yml @@ -23,12 +23,12 @@ jobs: bun-version: 1.3.13 - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: latest - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache diff --git a/.github/workflows/i18n.yml b/.github/workflows/i18n.yml index d0ea236373..5f7b1dd001 100644 --- a/.github/workflows/i18n.yml +++ b/.github/workflows/i18n.yml @@ -26,7 +26,7 @@ jobs: bun-version: 1.3.13 - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache @@ -125,7 +125,7 @@ jobs: bun-version: 1.3.13 - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml index 853ebc6881..f1ed176d35 100644 --- a/.github/workflows/images.yml +++ b/.github/workflows/images.yml @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@v6 - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }} aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_REGION || secrets.STAGING_AWS_REGION }} @@ -44,14 +44,14 @@ jobs: uses: aws-actions/amazon-ecr-login@v2 - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GHCR if: github.ref == 'refs/heads/main' - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -120,7 +120,7 @@ jobs: uses: actions/checkout@v6 - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -160,7 +160,7 @@ jobs: steps: - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/migrations.yml b/.github/workflows/migrations.yml index f1078e5aa2..daf41a0d98 100644 --- a/.github/workflows/migrations.yml +++ b/.github/workflows/migrations.yml @@ -22,7 +22,7 @@ jobs: bun-version: 1.3.13 - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 466ae0423b..d7bae3e782 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -22,13 +22,13 @@ jobs: bun-version: 1.3.13 - name: Setup Node.js for npm publishing - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '18' registry-url: 'https://registry.npmjs.org/' - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache diff --git a/.github/workflows/publish-ts-sdk.yml b/.github/workflows/publish-ts-sdk.yml index d8f95242b8..2a527b7b42 100644 --- a/.github/workflows/publish-ts-sdk.yml +++ b/.github/workflows/publish-ts-sdk.yml @@ -22,13 +22,13 @@ jobs: bun-version: 1.3.13 - name: Setup Node.js for npm publishing - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '22' registry-url: 'https://registry.npmjs.org/' - name: Cache Bun dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.bun/install/cache diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 2164aebfa4..19c31f028a 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -22,7 +22,7 @@ jobs: bun-version: 1.3.13 - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: latest @@ -45,7 +45,7 @@ jobs: path: ./.turbo - name: Restore Next.js build cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ./apps/sim/.next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }} diff --git a/docker/app.Dockerfile b/docker/app.Dockerfile index 766b0eba92..0c6087e241 100644 --- a/docker/app.Dockerfile +++ b/docker/app.Dockerfile @@ -29,10 +29,14 @@ RUN turbo prune sim --docker FROM base AS deps WORKDIR /app -# Pruned manifests + lockfile from the pruner stage. This layer only invalidates -# when package.json/bun.lock content changes — not on source edits. +# Pruned manifests from the pruner stage. This layer only invalidates when +# package.json/bun.lock content changes — not on source edits. COPY --from=pruner /app/out/json/ ./ -COPY --from=pruner /app/out/bun.lock ./bun.lock +# Use the full bun.lock (not the pruned out/bun.lock). turbo prune emits a +# bun.lock that bun 1.3.x rejects with "Failed to resolve prod dependency", +# forcing a slow fresh resolve. The full lockfile parses cleanly and bun +# only installs what the pruned package.jsons reference. +COPY --from=pruner /app/bun.lock ./bun.lock # Install all dependencies (including devDependencies — tailwindcss/postcss are # devDeps but required at build time). Then rebuild isolated-vm against Node.js. @@ -55,6 +59,12 @@ COPY --from=deps /app/node_modules ./node_modules # Copy pruned source tree (apps/sim + workspace packages it depends on) COPY --from=pruner /app/out/full/ ./ +# Next.js 16 / Turbopack workspace-root detection looks for a lockfile next to +# the workspace package.json. Without it, `next build` fails with +# "couldn't find next/package.json from /app/apps/sim". turbo also warns +# "Lockfile not found at /app/bun.lock" without it. +COPY --from=pruner /app/bun.lock ./bun.lock + ENV NEXT_TELEMETRY_DISABLED=1 \ VERCEL_TELEMETRY_DISABLED=1 \ DOCKER_BUILD=1