From 45bb1153ee562991d9c2afc415e913262c31674d Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Thu, 9 May 2024 21:05:51 +0530 Subject: [PATCH] fix: removing deploy with nginx env --- .github/workflows/feature-deployment.yml | 28 ++++++++++++++---------- admin/Dockerfile.admin | 10 ++++----- admin/Dockerfile.dev | 7 +++++- admin/next.config.js | 2 +- space/Dockerfile.dev | 6 +++-- space/Dockerfile.space | 8 +++---- space/next.config.js | 10 ++++----- space/pages/onboarding/index.tsx | 2 +- turbo.json | 4 ++-- 9 files changed, 45 insertions(+), 32 deletions(-) diff --git a/.github/workflows/feature-deployment.yml b/.github/workflows/feature-deployment.yml index a0a9dc7f1..e848dc36d 100644 --- a/.github/workflows/feature-deployment.yml +++ b/.github/workflows/feature-deployment.yml @@ -5,17 +5,17 @@ on: inputs: web-build: required: false - description: 'Build Web' + description: "Build Web" type: boolean default: true space-build: required: false - description: 'Build Space' + description: "Build Space" type: boolean default: false admin-build: required: false - description: 'Build Admin' + description: "Build Admin" type: boolean default: false @@ -35,7 +35,7 @@ jobs: echo "BUILD_SPACE=$BUILD_SPACE" echo "BUILD_ADMIN=$BUILD_ADMIN" outputs: - web-build: ${{ env.BUILD_WEB}} + web-build: ${{ env.BUILD_WEB}} space-build: ${{env.BUILD_SPACE}} admin-build: ${{env.BUILD_ADMIN}} @@ -53,7 +53,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: "18" - name: Install AWS cli run: | sudo apt-get update @@ -79,7 +79,7 @@ jobs: FILE_EXPIRY=$(date -u -d "+2 days" +"%Y-%m-%dT%H:%M:%SZ") aws s3 cp $TAR_NAME s3://${{ env.AWS_BUCKET }}/${{github.sha}}/$TAR_NAME --expires $FILE_EXPIRY - + feature-build-space: if: ${{ needs.setup-feature-build.outputs.space-build == 'true' }} needs: setup-feature-build @@ -89,7 +89,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ vars.FEATURE_PREVIEW_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.FEATURE_PREVIEW_AWS_SECRET_ACCESS_KEY }} AWS_BUCKET: ${{ vars.FEATURE_PREVIEW_AWS_BUCKET }} - NEXT_PUBLIC_DEPLOY_WITH_NGINX: 1 + NEXT_PUBLIC_SPACE_BASE_PATH: "/spaces" NEXT_PUBLIC_API_BASE_URL: ${{ vars.FEATURE_PREVIEW_NEXT_PUBLIC_API_BASE_URL }} outputs: do-build: ${{ needs.setup-feature-build.outputs.space-build }} @@ -98,7 +98,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: "18" - name: Install AWS cli run: | sudo apt-get update @@ -134,7 +134,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ vars.FEATURE_PREVIEW_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.FEATURE_PREVIEW_AWS_SECRET_ACCESS_KEY }} AWS_BUCKET: ${{ vars.FEATURE_PREVIEW_AWS_BUCKET }} - NEXT_PUBLIC_DEPLOY_WITH_NGINX: 1 + NEXT_PUBLIC_ADMIN_BASE_PATH: "/god-mode" NEXT_PUBLIC_API_BASE_URL: ${{ vars.FEATURE_PREVIEW_NEXT_PUBLIC_API_BASE_URL }} outputs: do-build: ${{ needs.setup-feature-build.outputs.admin-build }} @@ -143,7 +143,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: "18" - name: Install AWS cli run: | sudo apt-get update @@ -172,7 +172,13 @@ jobs: feature-deploy: if: ${{ always() && (needs.setup-feature-build.outputs.web-build == 'true' || needs.setup-feature-build.outputs.space-build == 'true' || needs.setup-feature-build.outputs.admin-build == 'true') }} - needs: [setup-feature-build, feature-build-web, feature-build-space, feature-build-admin] + needs: + [ + setup-feature-build, + feature-build-web, + feature-build-space, + feature-build-admin, + ] name: Feature Deploy runs-on: ubuntu-latest env: diff --git a/admin/Dockerfile.admin b/admin/Dockerfile.admin index 9abc5daef..f752df6d9 100644 --- a/admin/Dockerfile.admin +++ b/admin/Dockerfile.admin @@ -21,10 +21,10 @@ COPY --from=builder /app/out/full/ . COPY turbo.json turbo.json ARG NEXT_PUBLIC_API_BASE_URL="" -ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 +ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH RUN yarn turbo run build --filter=admin @@ -40,10 +40,10 @@ COPY --from=installer /app/admin/public ./admin/public ARG NEXT_PUBLIC_API_BASE_URL="" -ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 +ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL +ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH ENV NEXT_TELEMETRY_DISABLED 1 ENV TURBO_TELEMETRY_DISABLED 1 diff --git a/admin/Dockerfile.dev b/admin/Dockerfile.dev index 0cbbdc8af..1ed84e78e 100644 --- a/admin/Dockerfile.dev +++ b/admin/Dockerfile.dev @@ -3,10 +3,15 @@ RUN apk add --no-cache libc6-compat # Set working directory WORKDIR /app - COPY . . + RUN yarn global add turbo RUN yarn install + +ENV NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" + EXPOSE 3000 + VOLUME [ "/app/node_modules", "/app/admin/node_modules" ] + CMD ["yarn", "dev", "--filter=admin"] diff --git a/admin/next.config.js b/admin/next.config.js index 26ff4b870..07f6664af 100644 --- a/admin/next.config.js +++ b/admin/next.config.js @@ -7,7 +7,7 @@ const nextConfig = { images: { unoptimized: true, }, - basePath: "/god-mode", + basePath: process.env.NEXT_PUBLIC_ADMIN_BASE_PATH || "", }; module.exports = nextConfig; diff --git a/space/Dockerfile.dev b/space/Dockerfile.dev index 862210c33..213f3fb3c 100644 --- a/space/Dockerfile.dev +++ b/space/Dockerfile.dev @@ -3,12 +3,14 @@ RUN apk add --no-cache libc6-compat # Set working directory WORKDIR /app - COPY . . + RUN yarn global add turbo RUN yarn install + EXPOSE 4000 -ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 + +ENV NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" VOLUME [ "/app/node_modules", "/app/space/node_modules"] CMD ["yarn","dev", "--filter=space"] diff --git a/space/Dockerfile.space b/space/Dockerfile.space index a10690642..095f06722 100644 --- a/space/Dockerfile.space +++ b/space/Dockerfile.space @@ -21,10 +21,10 @@ COPY --from=builder /app/out/full/ . COPY turbo.json turbo.json ARG NEXT_PUBLIC_API_BASE_URL="" -ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 +ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH RUN yarn turbo run build --filter=space @@ -40,10 +40,10 @@ COPY --from=installer /app/space/.next ./space/.next COPY --from=installer /app/space/public ./space/public ARG NEXT_PUBLIC_API_BASE_URL="" -ARG NEXT_PUBLIC_DEPLOY_WITH_NGINX=1 +ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=$NEXT_PUBLIC_DEPLOY_WITH_NGINX +ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH COPY start.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/start.sh diff --git a/space/next.config.js b/space/next.config.js index c3153b694..eb9dde88a 100644 --- a/space/next.config.js +++ b/space/next.config.js @@ -5,17 +5,18 @@ const { withSentryConfig } = require("@sentry/nextjs"); const nextConfig = { trailingSlash: true, + output: "standalone", + basePath: process.env.NEXT_PUBLIC_SPACE_BASE_PATH || "", + reactStrictMode: false, + swcMinify: true, async headers() { return [ { source: "/", - headers: [{ key: "X-Frame-Options", value: "SAMEORIGIN" }], + headers: [{ key: "X-Frame-Options", value: "SAMEORIGIN" }], // clickjacking protection }, ]; }, - basePath: "/spaces", - reactStrictMode: false, - swcMinify: true, images: { remotePatterns: [ { @@ -25,7 +26,6 @@ const nextConfig = { ], unoptimized: true, }, - output: "standalone", }; if (parseInt(process.env.NEXT_PUBLIC_ENABLE_SENTRY || "0", 10)) { diff --git a/space/pages/onboarding/index.tsx b/space/pages/onboarding/index.tsx index 6ba95126a..8318f0346 100644 --- a/space/pages/onboarding/index.tsx +++ b/space/pages/onboarding/index.tsx @@ -17,7 +17,7 @@ import { AuthWrapper } from "@/lib/wrappers"; import ProfileSetupDark from "public/onboarding/profile-setup-dark.svg"; import ProfileSetup from "public/onboarding/profile-setup.svg"; -const imagePrefix = Boolean(parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) ? "/spaces" : ""; +const imagePrefix = process.env.NEXT_PUBLIC_SPACE_BASE_PATH || ""; const OnBoardingPage = observer(() => { // router diff --git a/turbo.json b/turbo.json index d9a63f30e..211d83048 100644 --- a/turbo.json +++ b/turbo.json @@ -15,11 +15,11 @@ "NEXT_PUBLIC_ENABLE_SESSION_RECORDER", "NEXT_PUBLIC_SESSION_RECORDER_KEY", "NEXT_PUBLIC_EXTRA_IMAGE_DOMAINS", - "NEXT_PUBLIC_DEPLOY_WITH_NGINX", "NEXT_PUBLIC_POSTHOG_KEY", "NEXT_PUBLIC_POSTHOG_HOST", "NEXT_PUBLIC_POSTHOG_DEBUG", - "SENTRY_AUTH_TOKEN" + "SENTRY_AUTH_TOKEN", + "NEXT_PUBLIC_SPACE_BASE_PATH" ], "pipeline": { "build": {