From da835c78150a13902b19ac802268fd0b4f5b2da5 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 20:55:17 +0200 Subject: [PATCH 01/14] Use action with more options for context and Dockerfile location --- .github/workflows/ci.yml | 71 ++++++++++++++++++++++----------------- frontends/main/Dockerfile | 19 +++++++++-- 2 files changed, 58 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81345d82a1..ffc722f6cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -155,8 +155,8 @@ jobs: with: file: coverage/lcov.info - build-publish-frontend: - needs: javascript-tests + build-deploy-frontend: + # needs: javascript-tests runs-on: ubuntu-latest steps: - name: Checkout @@ -166,35 +166,46 @@ jobs: run: | SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV - - name: Build the Docker image - env: - ORIGIN: https://next.rc.learn.mit.edu - MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - SITE_NAME: MIT Learn - MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - MITOL_AXIOS_WITH_CREDENTIALS: true - CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} - run: | - docker build \ - -t mitodl/mit-learn-frontend:$COMMIT_SHORT_SHA \ - --build-arg NEXT_PUBLIC_ORIGIN="$ORIGIN" \ - --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL="$MITOL_API_BASE_URL" \ - --build-arg NEXT_PUBLIC_SITE_NAME="$SITE_NAME" \ - --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL="$MITOL_SUPPORT_EMAIL" \ - --build-arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ - --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS="$MITOL_AXIOS_WITH_CREDENTIALS" \ - --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ - -f frontends/main/Dockerfile \ - . - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.MITOL_LEARN_DOCKERHUB_USER }} - password: ${{ secrets.MITOL_LEARN_DOCKERHUB_PASSWORD }} - - name: Push the Docker image to Dockerhub - run: docker push mitodl/mit-learn-frontend:$COMMIT_SHORT_SHA + # - name: Deploy to Heroku + # uses: akhileshns/heroku-deploy@v3.13.15 + # with: + # heroku_app_name: mitopen-rc-nextjs + # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} + # heroku_email: ${{ secrets.HEROKU_EMAIL }} + # usedocker: true + # appdir: frontends/main + # docker_build_args: | + # NEXT_PUBLIC_ORIGIN + # NEXT_PUBLIC_MITOL_API_BASE_URL + # NEXT_PUBLIC_SITE_NAME + # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL + # NEXT_PUBLIC_EMBEDLY_KEY + # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS + # NEXT_PUBLIC_CSRF_COOKIE_NAME + # env: + # NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu + # NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + # NEXT_PUBLIC_SITE_NAME: MIT Learn + # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu + # NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true + # NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + + - name: Deploy to Heroku + uses: gonuit/heroku-docker-deploy@v1.3.3 + with: + email: ${{ secrets.HEROKU_EMAIL }} + heroku_api_key: ${{ secrets.HEROKU_API_KEY }} + heroku_app_name: mitopen-rc-nextjs + dockerfile_directory: ./frontends/main + docker_options: | + --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu + --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu + --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" + --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu + --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true + --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken build-storybook: runs-on: ubuntu-latest diff --git a/frontends/main/Dockerfile b/frontends/main/Dockerfile index 42bc0544a8..2eb1633b43 100644 --- a/frontends/main/Dockerfile +++ b/frontends/main/Dockerfile @@ -14,6 +14,21 @@ # docker run -p 8062:8062 -e PORT=8062 mit-learn-frontend:latest +# Heroku build/push: +# +# heroku container:push frontend \ +# --app mitopen-rc-nextjs \ +# --recursive \ +# --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ +# --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ +# --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ +# --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ +# --arg NEXT_PUBLIC_EMBEDLY_KEY=******** \ +# --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ +# --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ +# --context-path . + + FROM node:22-alpine RUN apk update @@ -50,10 +65,10 @@ ENV NEXT_PUBLIC_SITE_NAME=$NEXT_PUBLIC_SITE_NAME ARG NEXT_PUBLIC_MITOL_SUPPORT_EMAIL ENV NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=$NEXT_PUBLIC_MITOL_SUPPORT_EMAIL -ARG NEXT_PUBLIC_EMBEDLY_KEY +ARG NEXT_PUBLIC_EMBEDLY_KEY=None ENV NEXT_PUBLIC_EMBEDLY_KEY=$NEXT_PUBLIC_EMBEDLY_KEY -ARG NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS +ARG NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true ENV NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=$NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS ARG NEXT_PUBLIC_CSRF_COOKIE_NAME From d35510ec94a2c2efe82dd28117b418a2915b1411 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 20:56:58 +0200 Subject: [PATCH 02/14] Escape newline --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffc722f6cb..5cfa5bddc1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -200,12 +200,12 @@ jobs: heroku_app_name: mitopen-rc-nextjs dockerfile_directory: ./frontends/main docker_options: | - --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu - --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu - --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" - --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu - --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true - --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken + --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ + --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ + --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ + --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ + --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ + --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ build-storybook: runs-on: ubuntu-latest From 5151aa322bd11bce0b742e4a7fb9cd81b8f04a1f Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:28:10 +0200 Subject: [PATCH 03/14] Deploy to Heroku tests --- .github/workflows/ci.yml | 105 ++++++++++++++++++++++++++++----------- 1 file changed, 75 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cfa5bddc1..83103f4341 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -155,43 +155,42 @@ jobs: with: file: coverage/lcov.info - build-deploy-frontend: + build-deploy-frontend-1: # needs: javascript-tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - name: Get short commit hash - run: | - SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) - echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV - - # - name: Deploy to Heroku - # uses: akhileshns/heroku-deploy@v3.13.15 - # with: - # heroku_app_name: mitopen-rc-nextjs - # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} - # heroku_email: ${{ secrets.HEROKU_EMAIL }} - # usedocker: true - # appdir: frontends/main - # docker_build_args: | - # NEXT_PUBLIC_ORIGIN - # NEXT_PUBLIC_MITOL_API_BASE_URL - # NEXT_PUBLIC_SITE_NAME - # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL - # NEXT_PUBLIC_EMBEDLY_KEY - # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS - # NEXT_PUBLIC_CSRF_COOKIE_NAME - # env: - # NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu - # NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - # NEXT_PUBLIC_SITE_NAME: MIT Learn - # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - # NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true - # NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + - name: Deploy to Heroku + uses: akhileshns/heroku-deploy@v3.13.15 + with: + heroku_app_name: mitopen-rc-nextjs + heroku_api_key: ${{ secrets.HEROKU_API_KEY }} + heroku_email: ${{ secrets.HEROKU_EMAIL }} + usedocker: true + appdir: frontends/main + docker_build_args: | + NEXT_PUBLIC_ORIGIN + NEXT_PUBLIC_MITOL_API_BASE_URL + NEXT_PUBLIC_SITE_NAME + NEXT_PUBLIC_MITOL_SUPPORT_EMAIL + NEXT_PUBLIC_EMBEDLY_KEY + NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS + NEXT_PUBLIC_CSRF_COOKIE_NAME + env: + NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu + NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + NEXT_PUBLIC_SITE_NAME: MIT Learn + NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu + NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true + NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + build-deploy-frontend-2: + # needs: javascript-tests + runs-on: ubuntu-latest + steps: - name: Deploy to Heroku uses: gonuit/heroku-docker-deploy@v1.3.3 with: @@ -207,6 +206,52 @@ jobs: --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + build-deploy-frontend-3: + # needs: javascript-tests + runs-on: ubuntu-latest + steps: + # - name: Get short commit hash + # run: + # SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) + # echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV + + - name: Build the Docker image + env: + ORIGIN: https://next.rc.learn.mit.edu + MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + SITE_NAME: MIT Learn + MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu + EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + MITOL_AXIOS_WITH_CREDENTIALS: true + CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + run: | + docker build \ + -t registry.heroku.com/mitopen-rc-nextjs/frontend:latest \ + --build-arg NEXT_PUBLIC_ORIGIN="$ORIGIN" \ + --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL="$MITOL_API_BASE_URL" \ + --build-arg NEXT_PUBLIC_SITE_NAME="$SITE_NAME" \ + --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL="$MITOL_SUPPORT_EMAIL" \ + --build-arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ + --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS="$MITOL_AXIOS_WITH_CREDENTIALS" \ + --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ + -f frontends/main/Dockerfile \ + . + + - name: Attempt Heroku login + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + run: heroku container:login --app mitopen-rc-nextjs + + - name: Push to Heroku + run: heroku container:push --app mitopen-rc-nextjs --recursive + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + + - name: Release on Heroku + run: heroku container:release --app mitopen-rc-nextjs + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + build-storybook: runs-on: ubuntu-latest steps: From 1b58807ff427fab686fbce099e5639e84404034c Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:32:01 +0200 Subject: [PATCH 04/14] Missing checkouts --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83103f4341..34f6cc4f35 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -191,6 +191,9 @@ jobs: # needs: javascript-tests runs-on: ubuntu-latest steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - name: Deploy to Heroku uses: gonuit/heroku-docker-deploy@v1.3.3 with: @@ -210,6 +213,9 @@ jobs: # needs: javascript-tests runs-on: ubuntu-latest steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + # - name: Get short commit hash # run: # SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) From c22a8415abc1ea9c0fd7e5aca6b41dff867e3318 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:58:32 +0200 Subject: [PATCH 05/14] Heroku login test --- .github/workflows/ci.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 34f6cc4f35..caa594658a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -242,7 +242,6 @@ jobs: --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ -f frontends/main/Dockerfile \ . - - name: Attempt Heroku login env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} @@ -258,6 +257,23 @@ jobs: env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + build-deploy-frontend-4: + # needs: javascript-tests + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + - name: Heroku login + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + run: heroku container:login --app mitopen-rc-nextjs + + - name: Release on Heroku + run: heroku container:release --app mitopen-rc-nextjs + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + build-storybook: runs-on: ubuntu-latest steps: From 398c5bc98cb59e46fa28ec45cb5a04167566ad6c Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Tue, 17 Sep 2024 22:33:06 +0200 Subject: [PATCH 06/14] Build directly with Heroku CLI --- .github/workflows/ci.yml | 219 ++++++++++-------- .../main/{Dockerfile => Dockerfile.frontend} | 4 + 2 files changed, 121 insertions(+), 102 deletions(-) rename frontends/main/{Dockerfile => Dockerfile.frontend} (97%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index caa594658a..3350d3625b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -155,124 +155,139 @@ jobs: with: file: coverage/lcov.info - build-deploy-frontend-1: - # needs: javascript-tests - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Deploy to Heroku - uses: akhileshns/heroku-deploy@v3.13.15 - with: - heroku_app_name: mitopen-rc-nextjs - heroku_api_key: ${{ secrets.HEROKU_API_KEY }} - heroku_email: ${{ secrets.HEROKU_EMAIL }} - usedocker: true - appdir: frontends/main - docker_build_args: | - NEXT_PUBLIC_ORIGIN - NEXT_PUBLIC_MITOL_API_BASE_URL - NEXT_PUBLIC_SITE_NAME - NEXT_PUBLIC_MITOL_SUPPORT_EMAIL - NEXT_PUBLIC_EMBEDLY_KEY - NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS - NEXT_PUBLIC_CSRF_COOKIE_NAME - env: - NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu - NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - NEXT_PUBLIC_SITE_NAME: MIT Learn - NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true - NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} - - build-deploy-frontend-2: - # needs: javascript-tests - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + # build-deploy-frontend-1: + # # needs: javascript-tests + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + # - name: Deploy to Heroku + # uses: akhileshns/heroku-deploy@v3.13.15 + # with: + # heroku_app_name: mitopen-rc-nextjs + # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} + # heroku_email: ${{ secrets.HEROKU_EMAIL }} + # usedocker: true + # appdir: frontends/main + # docker_build_args: | + # NEXT_PUBLIC_ORIGIN + # NEXT_PUBLIC_MITOL_API_BASE_URL + # NEXT_PUBLIC_SITE_NAME + # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL + # NEXT_PUBLIC_EMBEDLY_KEY + # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS + # NEXT_PUBLIC_CSRF_COOKIE_NAME + # env: + # NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu + # NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + # NEXT_PUBLIC_SITE_NAME: MIT Learn + # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu + # NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true + # NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + + # build-deploy-frontend-2: + # # needs: javascript-tests + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + # - name: Deploy to Heroku + # uses: gonuit/heroku-docker-deploy@v1.3.3 + # with: + # email: ${{ secrets.HEROKU_EMAIL }} + # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} + # heroku_app_name: mitopen-rc-nextjs + # dockerfile_directory: ./frontends/main + # docker_options: | + # --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ + # --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ + # --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ + # --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ + # --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ + # --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + + # build-deploy-frontend-3: + # # needs: javascript-tests + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + # # - name: Get short commit hash + # # run: + # # SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) + # # echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV + + # - name: Build the Docker image + # env: + # ORIGIN: https://next.rc.learn.mit.edu + # MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + # SITE_NAME: MIT Learn + # MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu + # EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + # MITOL_AXIOS_WITH_CREDENTIALS: true + # CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} + # run: | + # docker build \ + # -t registry.heroku.com/mitopen-rc-nextjs/frontend:latest \ + # --build-arg NEXT_PUBLIC_ORIGIN="$ORIGIN" \ + # --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL="$MITOL_API_BASE_URL" \ + # --build-arg NEXT_PUBLIC_SITE_NAME="$SITE_NAME" \ + # --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL="$MITOL_SUPPORT_EMAIL" \ + # --build-arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ + # --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS="$MITOL_AXIOS_WITH_CREDENTIALS" \ + # --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ + # -f frontends/main/Dockerfile \ + # . + # - name: Attempt Heroku login + # env: + # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + # run: heroku container:login --app mitopen-rc-nextjs + + # - name: Push to Heroku + # run: heroku container:push --app mitopen-rc-nextjs --recursive + # env: + # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + + # - name: Release on Heroku + # run: heroku container:release --app mitopen-rc-nextjs + # env: + # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - - name: Deploy to Heroku - uses: gonuit/heroku-docker-deploy@v1.3.3 - with: - email: ${{ secrets.HEROKU_EMAIL }} - heroku_api_key: ${{ secrets.HEROKU_API_KEY }} - heroku_app_name: mitopen-rc-nextjs - dockerfile_directory: ./frontends/main - docker_options: | - --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ - --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ - --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ - --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ - --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ - --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ - - build-deploy-frontend-3: + build-deploy-frontend-4: # needs: javascript-tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - # - name: Get short commit hash - # run: - # SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) - # echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV - - - name: Build the Docker image - env: - ORIGIN: https://next.rc.learn.mit.edu - MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - SITE_NAME: MIT Learn - MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - MITOL_AXIOS_WITH_CREDENTIALS: true - CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} - run: | - docker build \ - -t registry.heroku.com/mitopen-rc-nextjs/frontend:latest \ - --build-arg NEXT_PUBLIC_ORIGIN="$ORIGIN" \ - --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL="$MITOL_API_BASE_URL" \ - --build-arg NEXT_PUBLIC_SITE_NAME="$SITE_NAME" \ - --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL="$MITOL_SUPPORT_EMAIL" \ - --build-arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ - --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS="$MITOL_AXIOS_WITH_CREDENTIALS" \ - --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ - -f frontends/main/Dockerfile \ - . - - name: Attempt Heroku login - env: - HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - run: heroku container:login --app mitopen-rc-nextjs - - - name: Push to Heroku - run: heroku container:push --app mitopen-rc-nextjs --recursive - env: - HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - - - name: Release on Heroku - run: heroku container:release --app mitopen-rc-nextjs + - name: Heroku login env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + run: heroku container:login - build-deploy-frontend-4: - # needs: javascript-tests - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Heroku login + - name: Build the Docker image env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - run: heroku container:login --app mitopen-rc-nextjs + run: | + heroku container:push frontend \ + --app mitopen-rc-nextjs \ + --recursive \ + --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ + --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ + --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ + --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ + --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ + --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + --context-path . - name: Release on Heroku - run: heroku container:release --app mitopen-rc-nextjs env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + run: heroku container:release --app mitopen-rc-nextjs frontend build-storybook: runs-on: ubuntu-latest diff --git a/frontends/main/Dockerfile b/frontends/main/Dockerfile.frontend similarity index 97% rename from frontends/main/Dockerfile rename to frontends/main/Dockerfile.frontend index 2eb1633b43..f140b1cfac 100644 --- a/frontends/main/Dockerfile +++ b/frontends/main/Dockerfile.frontend @@ -29,6 +29,10 @@ # --context-path . +# Heroku release: +# heroku container:release --app mitopen-rc-nextjs frontend + + FROM node:22-alpine RUN apk update From 6c519d21c619add33fde85d9d3610fe6474c625d Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:00:03 +0200 Subject: [PATCH 07/14] Rename to web (Heroku process type) --- .github/workflows/ci.yml | 6 ++++-- frontends/main/{Dockerfile.frontend => Dockerfile.web} | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) rename frontends/main/{Dockerfile.frontend => Dockerfile.web} (95%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3350d3625b..f71349fe27 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -257,7 +257,7 @@ jobs: # env: # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - build-deploy-frontend-4: + build-deploy-frontend: # needs: javascript-tests runs-on: ubuntu-latest steps: @@ -272,14 +272,16 @@ jobs: - name: Build the Docker image env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} run: | - heroku container:push frontend \ + heroku container:push web \ --app mitopen-rc-nextjs \ --recursive \ --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ + --arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ --context-path . diff --git a/frontends/main/Dockerfile.frontend b/frontends/main/Dockerfile.web similarity index 95% rename from frontends/main/Dockerfile.frontend rename to frontends/main/Dockerfile.web index f140b1cfac..12977cb54c 100644 --- a/frontends/main/Dockerfile.frontend +++ b/frontends/main/Dockerfile.web @@ -16,20 +16,21 @@ # Heroku build/push: # -# heroku container:push frontend \ +# heroku container:push web \ # --app mitopen-rc-nextjs \ # --recursive \ # --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ # --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ # --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ # --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ -# --arg NEXT_PUBLIC_EMBEDLY_KEY=******** \ +# --arg NEXT_PUBLIC_EMBEDLY_KEY=******* \ # --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ # --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ # --context-path . # Heroku release: +# heroku ps:scale frontend=1 --app mitopen-rc-nextjs # heroku container:release --app mitopen-rc-nextjs frontend From 460503628ab05dd3356a83cbbd9944b1a605fdc0 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:08:13 +0200 Subject: [PATCH 08/14] Release web --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f71349fe27..8d86f0e661 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -289,7 +289,7 @@ jobs: - name: Release on Heroku env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - run: heroku container:release --app mitopen-rc-nextjs frontend + run: heroku container:release --app mitopen-rc-nextjs web build-storybook: runs-on: ubuntu-latest From 1aaaa1e392623a70778d281129468e086c606082 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:54:07 +0200 Subject: [PATCH 09/14] Debug build args --- .github/workflows/ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d86f0e661..32cf3631d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,6 +274,17 @@ jobs: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} run: | + echo "heroku container:push web \ + --app mitopen-rc-nextjs \ + --recursive \ + --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ + --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ + --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ + --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ + --arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ + --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ + --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + --context-path ." heroku container:push web \ --app mitopen-rc-nextjs \ --recursive \ From 2d5f12e575610c9c03260550d8f3e51cbb078a1f Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 17:31:35 +0200 Subject: [PATCH 10/14] Debug build var --- frontends/main/Dockerfile.web | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontends/main/Dockerfile.web b/frontends/main/Dockerfile.web index 12977cb54c..2aeeea0ef1 100644 --- a/frontends/main/Dockerfile.web +++ b/frontends/main/Dockerfile.web @@ -80,7 +80,7 @@ ARG NEXT_PUBLIC_CSRF_COOKIE_NAME ENV NEXT_PUBLIC_CSRF_COOKIE_NAME=$NEXT_PUBLIC_CSRF_COOKIE_NAME -RUN echo $NEXT_PUBLIC_ORIGIN +RUN echo NEXT_PUBLIC_ORIGIN is $NEXT_PUBLIC_ORIGIN RUN yarn build EXPOSE 3000 From 2149ddc91dde8a6ac51758ed42db148fb0b5384e Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 17:31:35 +0200 Subject: [PATCH 11/14] Comma separated build args --- .github/workflows/ci.yml | 127 ++-------------------------------- frontends/main/Dockerfile.web | 18 +++-- 2 files changed, 15 insertions(+), 130 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32cf3631d8..587cbf17f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -155,108 +155,6 @@ jobs: with: file: coverage/lcov.info - # build-deploy-frontend-1: - # # needs: javascript-tests - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - # - name: Deploy to Heroku - # uses: akhileshns/heroku-deploy@v3.13.15 - # with: - # heroku_app_name: mitopen-rc-nextjs - # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} - # heroku_email: ${{ secrets.HEROKU_EMAIL }} - # usedocker: true - # appdir: frontends/main - # docker_build_args: | - # NEXT_PUBLIC_ORIGIN - # NEXT_PUBLIC_MITOL_API_BASE_URL - # NEXT_PUBLIC_SITE_NAME - # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL - # NEXT_PUBLIC_EMBEDLY_KEY - # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS - # NEXT_PUBLIC_CSRF_COOKIE_NAME - # env: - # NEXT_PUBLIC_ORIGIN: https://next.rc.learn.mit.edu - # NEXT_PUBLIC_MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - # NEXT_PUBLIC_SITE_NAME: MIT Learn - # NEXT_PUBLIC_MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - # NEXT_PUBLIC_EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - # NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS: true - # NEXT_PUBLIC_CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} - - # build-deploy-frontend-2: - # # needs: javascript-tests - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - # - name: Deploy to Heroku - # uses: gonuit/heroku-docker-deploy@v1.3.3 - # with: - # email: ${{ secrets.HEROKU_EMAIL }} - # heroku_api_key: ${{ secrets.HEROKU_API_KEY }} - # heroku_app_name: mitopen-rc-nextjs - # dockerfile_directory: ./frontends/main - # docker_options: | - # --build-arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ - # --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ - # --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ - # --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ - # --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ - # --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ - - # build-deploy-frontend-3: - # # needs: javascript-tests - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - # # - name: Get short commit hash - # # run: - # # SHORT_SHA=$(git rev-parse --short ${{ github.sha }}) - # # echo "COMMIT_SHORT_SHA=$SHORT_SHA" >> $GITHUB_ENV - - # - name: Build the Docker image - # env: - # ORIGIN: https://next.rc.learn.mit.edu - # MITOL_API_BASE_URL: https://api.rc.learn.mit.edu - # SITE_NAME: MIT Learn - # MITOL_SUPPORT_EMAIL: mitlearn-support@mit.edu - # EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} - # MITOL_AXIOS_WITH_CREDENTIALS: true - # CSRF_COOKIE_NAME: ${{ secrets.CSRF_COOKIE_NAME_RC }} - # run: | - # docker build \ - # -t registry.heroku.com/mitopen-rc-nextjs/frontend:latest \ - # --build-arg NEXT_PUBLIC_ORIGIN="$ORIGIN" \ - # --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL="$MITOL_API_BASE_URL" \ - # --build-arg NEXT_PUBLIC_SITE_NAME="$SITE_NAME" \ - # --build-arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL="$MITOL_SUPPORT_EMAIL" \ - # --build-arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ - # --build-arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS="$MITOL_AXIOS_WITH_CREDENTIALS" \ - # --build-arg NEXT_PUBLIC_CSRF_COOKIE_NAME="$CSRF_COOKIE_NAME" \ - # -f frontends/main/Dockerfile \ - # . - # - name: Attempt Heroku login - # env: - # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - # run: heroku container:login --app mitopen-rc-nextjs - - # - name: Push to Heroku - # run: heroku container:push --app mitopen-rc-nextjs --recursive - # env: - # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - - # - name: Release on Heroku - # run: heroku container:release --app mitopen-rc-nextjs - # env: - # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} - build-deploy-frontend: # needs: javascript-tests runs-on: ubuntu-latest @@ -274,27 +172,16 @@ jobs: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} run: | - echo "heroku container:push web \ - --app mitopen-rc-nextjs \ - --recursive \ - --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ - --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ - --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ - --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ - --arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ - --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ - --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ - --context-path ." heroku container:push web \ --app mitopen-rc-nextjs \ --recursive \ - --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ - --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ - --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ - --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ - --arg NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY" \ - --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ - --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu, \ + NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu, \ + NEXT_PUBLIC_SITE_NAME="MIT Learn", \ + NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu, \ + NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY", \ + NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true, \ + NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ --context-path . - name: Release on Heroku diff --git a/frontends/main/Dockerfile.web b/frontends/main/Dockerfile.web index 2aeeea0ef1..0035f1f362 100644 --- a/frontends/main/Dockerfile.web +++ b/frontends/main/Dockerfile.web @@ -1,6 +1,6 @@ # Build: \ # docker build \ -# -f frontends/main/Dockerfile \ +# -f frontends/main/Dockerfile.web \ # --build-arg NEXT_PUBLIC_ORIGIN=http://api.open.odl.local:8062 \ # --build-arg NEXT_PUBLIC_MITOL_API_BASE_URL=http://open.odl.local:8063 \ # --build-arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ @@ -19,13 +19,13 @@ # heroku container:push web \ # --app mitopen-rc-nextjs \ # --recursive \ -# --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu \ -# --arg NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu \ -# --arg NEXT_PUBLIC_SITE_NAME="MIT Learn" \ -# --arg NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu \ -# --arg NEXT_PUBLIC_EMBEDLY_KEY=******* \ -# --arg NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true \ -# --arg NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ +# --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu, \ +# NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu, \ +# NEXT_PUBLIC_SITE_NAME="MIT Learn", \ +# NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu, \ +# NEXT_PUBLIC_EMBEDLY_KEY=*******, \ +# NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true, \ +# NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ # --context-path . @@ -79,8 +79,6 @@ ENV NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=$NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDE ARG NEXT_PUBLIC_CSRF_COOKIE_NAME ENV NEXT_PUBLIC_CSRF_COOKIE_NAME=$NEXT_PUBLIC_CSRF_COOKIE_NAME - -RUN echo NEXT_PUBLIC_ORIGIN is $NEXT_PUBLIC_ORIGIN RUN yarn build EXPOSE 3000 From ea7cd1ac1b733e7e7983a73873e51e208c5f8704 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 18:36:13 +0200 Subject: [PATCH 12/14] Remove multiline spaces --- .github/workflows/ci.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 587cbf17f3..69cf37bc27 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -175,13 +175,7 @@ jobs: heroku container:push web \ --app mitopen-rc-nextjs \ --recursive \ - --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu, \ - NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu, \ - NEXT_PUBLIC_SITE_NAME="MIT Learn", \ - NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu, \ - NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY", \ - NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true, \ - NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu,NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu,NEXT_PUBLIC_SITE_NAME="MIT Learn",NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu,NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY",NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true,NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ --context-path . - name: Release on Heroku From 30e977083cfebc1da13e6c551e19c4b83b70c530 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 19:18:41 +0200 Subject: [PATCH 13/14] Clean up env vars --- .github/workflows/ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69cf37bc27..39006ab419 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -156,7 +156,7 @@ jobs: file: coverage/lcov.info build-deploy-frontend: - # needs: javascript-tests + needs: javascript-tests runs-on: ubuntu-latest steps: - name: Checkout @@ -171,11 +171,17 @@ jobs: env: HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} EMBEDLY_KEY: ${{ secrets.EMBEDLY_KEY_RC }} + ORIGIN: https://next.rc.learn.mit.edu + MITOL_API_BASE_URL: https://api.rc.learn.mit.edu + SITE_NAME: MIT Learn + SUPPORT_EMAIL: mitlearn-support@mit.edu + MITOL_AXIOS_WITH_CREDENTIALS: true + CSRF_COOKIE_NAME: learn-rc-csrftoken run: | heroku container:push web \ --app mitopen-rc-nextjs \ --recursive \ - --arg NEXT_PUBLIC_ORIGIN=https://next.rc.learn.mit.edu,NEXT_PUBLIC_MITOL_API_BASE_URL=https://api.rc.learn.mit.edu,NEXT_PUBLIC_SITE_NAME="MIT Learn",NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=mitlearn-support@mit.edu,NEXT_PUBLIC_EMBEDLY_KEY="$EMBEDLY_KEY",NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=true,NEXT_PUBLIC_CSRF_COOKIE_NAME=learn-rc-csrftoken \ + --arg NEXT_PUBLIC_ORIGIN=$ORIGIN,NEXT_PUBLIC_MITOL_API_BASE_URL=$MITOL_API_BASE_URL,NEXT_PUBLIC_SITE_NAME="$SITE_NAME",NEXT_PUBLIC_MITOL_SUPPORT_EMAIL=$SUPPORT_EMAIL,NEXT_PUBLIC_EMBEDLY_KEY=$EMBEDLY_KEY,NEXT_PUBLIC_MITOL_AXIOS_WITH_CREDENTIALS=$MITOL_AXIOS_WITH_CREDENTIALS,NEXT_PUBLIC_CSRF_COOKIE_NAME=$CSRF_COOKIE_NAME \ --context-path . - name: Release on Heroku From 068ef9c95f453c99f8c2ebd705d9d3294a602fa1 Mon Sep 17 00:00:00 2001 From: Jon Kafton <939376+jonkafton@users.noreply.github.com> Date: Fri, 20 Sep 2024 21:36:01 +0200 Subject: [PATCH 14/14] Deploy only on the nextjs branch --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39006ab419..c228eea714 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -156,6 +156,7 @@ jobs: file: coverage/lcov.info build-deploy-frontend: + if: github.ref == 'refs/heads/nextjs' needs: javascript-tests runs-on: ubuntu-latest steps: