From 6bb2cc24dfa1a9c5ddfbf649a26f038c14668ae0 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:08:52 +0900 Subject: [PATCH 01/23] =?UTF-8?q?feat:=20github=20actions=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/front-deploy.yml diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml new file mode 100644 index 00000000..4ec8defb --- /dev/null +++ b/.github/workflows/front-deploy.yml @@ -0,0 +1,65 @@ +name: front-deploy + +on: + push: + branches: + - refactor/#118 + +jobs: + build: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: refactor/#118 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + + # 리액트 빌드 + - name: build react + run: npm run build + + # aws user 연결 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_ID }} + aws-region: ap-northeast-2 + + # 환경 변수 파일을 생성. + - name: Generate Environment Variables File for Production + run: | + echo "VITE_DEV_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env + echo "VITE_PROD_SERVER_URL=$VITE_PROD_SERVER_URL" >> .env + env: + VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} + VITE_PROD_SERVER_URL: ${{ secrets.VITE_PROD_SERVER_URL }} + + # react 빌드한 /build를 s3로 업로드 + - name: Upload /dist to S3 + env: + BUCKET_NAME: ${{ secrets.AWS_S3_BUCKET_NAME}} + run: | + aws s3 sync \ + ./dist s3://$BUCKET_NAME + + # 업로드한 s3 파일을 각 CDN 캐시 무효화하여 리프레시 하기 + - name: CloudFront Invalidation + env: + CLOUD_FRONT_ID: ${{ secrets.AWS_CLOUDFRONT_DISTRIBUTION_ID}} + run: | + aws cloudfront create-invalidation \ + --distribution-id $CLOUD_FRONT_ID --paths "/*" + + - name: deploy + run: | + npm run deploy:prod From c0560df3df37ef3be339520f390fb996524272f2 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:11:28 +0900 Subject: [PATCH 02/23] =?UTF-8?q?build:=20=EC=9D=98=EC=A1=B4=EC=84=B1=20?= =?UTF-8?q?=EC=84=A4=EC=B9=98=20script=20=EC=B6=94=EA=B0=80=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 4ec8defb..22685a8f 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -23,6 +23,10 @@ jobs: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + # 의존성 install + - name: Install Dependencies + run: npm install + # 리액트 빌드 - name: build react run: npm run build From 738556ecb11d4d2dce85d4ba802c8d692728ccd7 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:12:48 +0900 Subject: [PATCH 03/23] =?UTF-8?q?fix:=20=EB=93=A4=EC=97=AC=EC=93=B0?= =?UTF-8?q?=EA=B8=B0=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 22685a8f..fdd28f89 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -23,7 +23,7 @@ jobs: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - # 의존성 install + # 의존성 install - name: Install Dependencies run: npm install From 447bf1a6b2994686396cb82bb27411eea1fd2eb2 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:15:14 +0900 Subject: [PATCH 04/23] =?UTF-8?q?chore:=20script=20=EB=93=A4=EC=97=AC?= =?UTF-8?q?=EC=93=B0=EA=B8=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index fdd28f89..68789e58 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -23,7 +23,6 @@ jobs: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - # 의존성 install - name: Install Dependencies run: npm install From f16de47a3e07e3bc65c86b75de587e1087cefc31 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:18:07 +0900 Subject: [PATCH 05/23] =?UTF-8?q?chore:=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 68789e58..2a3a5e78 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -35,7 +35,7 @@ jobs: uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ap-northeast-2 # 환경 변수 파일을 생성. From 0f6cb258007ab08dbb56f8ced9b55ef2353872ca Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:28:04 +0900 Subject: [PATCH 06/23] =?UTF-8?q?chore:=20=EC=A4=91=EB=B3=B5=ED=95=B4?= =?UTF-8?q?=EC=84=9C=20build=ED=95=98=EB=8A=94=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A6=BD=ED=8A=B8=20=EC=A0=9C=EA=B1=B0=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 2a3a5e78..bdcc7f4c 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -26,10 +26,6 @@ jobs: - name: Install Dependencies run: npm install - # 리액트 빌드 - - name: build react - run: npm run build - # aws user 연결 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 @@ -47,7 +43,7 @@ jobs: VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} VITE_PROD_SERVER_URL: ${{ secrets.VITE_PROD_SERVER_URL }} - # react 빌드한 /build를 s3로 업로드 + # react 빌드한 /dist를 s3로 업로드 - name: Upload /dist to S3 env: BUCKET_NAME: ${{ secrets.AWS_S3_BUCKET_NAME}} @@ -63,6 +59,7 @@ jobs: aws cloudfront create-invalidation \ --distribution-id $CLOUD_FRONT_ID --paths "/*" + # 배포 - name: deploy run: | npm run deploy:prod From f9946c4819f22fbaf810b83099307ac87d28df99 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:30:51 +0900 Subject: [PATCH 07/23] =?UTF-8?q?chore:=20=EC=8A=A4=ED=81=AC=EB=A6=BD?= =?UTF-8?q?=ED=8A=B8=20=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index bdcc7f4c..d79daf87 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -43,6 +43,11 @@ jobs: VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} VITE_PROD_SERVER_URL: ${{ secrets.VITE_PROD_SERVER_URL }} + # react 빌드 + - name: deploy + run: | + npm run deploy:prod + # react 빌드한 /dist를 s3로 업로드 - name: Upload /dist to S3 env: @@ -58,8 +63,3 @@ jobs: run: | aws cloudfront create-invalidation \ --distribution-id $CLOUD_FRONT_ID --paths "/*" - - # 배포 - - name: deploy - run: | - npm run deploy:prod From 48a11a27c69348ac1534c8e55f88271cdb40f56f Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:32:45 +0900 Subject: [PATCH 08/23] =?UTF-8?q?build:=20=EC=9D=98=EC=A1=B4=EC=84=B1=20?= =?UTF-8?q?=EC=BA=90=EC=8B=B1=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index d79daf87..16609b93 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -22,9 +22,9 @@ jobs: with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - - name: Install Dependencies - run: npm install + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci # aws user 연결 - name: Configure AWS credentials From e053b25e49190864b4a7fec7590b4d3af931256e Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 14:51:22 +0900 Subject: [PATCH 09/23] =?UTF-8?q?build:=20playwright=20=EB=B8=8C=EB=9E=9C?= =?UTF-8?q?=EC=B9=98=20=EC=84=A4=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/playwright.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 67a4cc20..01dbc9c8 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,4 +1,10 @@ name: Playwright Tests + +on: + push: + branches: + - refactor/#118 + jobs: test: timeout-minutes: 60 From dedc0bf800f54a6f5bdd2be70b8f00ae2f697a29 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 15:03:21 +0900 Subject: [PATCH 10/23] =?UTF-8?q?refactor:=20playwright=20ci=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20script=20=EC=A0=81=EC=9A=A9=20=EB=B8=8C?= =?UTF-8?q?=EB=9E=9C=EC=B9=98=20=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 4 ++-- .github/workflows/playwright.yml | 28 ---------------------------- 2 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 .github/workflows/playwright.yml diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 16609b93..5b2e3b09 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -3,7 +3,7 @@ name: front-deploy on: push: branches: - - refactor/#118 + - main jobs: build: @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 with: - ref: refactor/#118 + ref: main - name: Setup Node.js uses: actions/setup-node@v3 with: diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml deleted file mode 100644 index 01dbc9c8..00000000 --- a/.github/workflows/playwright.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Playwright Tests - -on: - push: - branches: - - refactor/#118 - -jobs: - test: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - - name: Install dependencies - run: npm ci - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - name: Run Playwright tests - run: npx playwright test - - uses: actions/upload-artifact@v3 - if: always() - with: - name: playwright-report - path: playwright-report/ - retention-days: 30 From f69a948883995448cad09ef628af52e550881d9b Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 15:45:46 +0900 Subject: [PATCH 11/23] =?UTF-8?q?build:=20dev=20=EB=B0=B0=ED=8F=AC?= =?UTF-8?q?=ED=99=98=EA=B2=BD=20=EB=B6=84=EB=A6=AC=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-dev.yml | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/front-dev.yml diff --git a/.github/workflows/front-dev.yml b/.github/workflows/front-dev.yml new file mode 100644 index 00000000..99206a27 --- /dev/null +++ b/.github/workflows/front-dev.yml @@ -0,0 +1,63 @@ +name: front-dev + +on: + push: + branches: + - refactor/#118 + +jobs: + build: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: refactor/#118 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + - name: Install Dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci + + # aws user 연결 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ap-northeast-2 + + # 환경 변수 파일을 생성. + - name: Generate Environment Variables File for Production + run: | + echo "VITE_DEV_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env + env: + VITE_PROD_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} + + # react 빌드 + - name: deploy + run: | + npm run deploy:prod + + # react 빌드한 /dist를 s3로 업로드 + - name: Upload /dist to S3 + env: + BUCKET_NAME: ${{ secrets.AWS_S3_BUCKET_NAME_DEV}} + run: | + aws s3 sync \ + ./dist s3://$BUCKET_NAME + + # 업로드한 s3 파일을 각 CDN 캐시 무효화하여 리프레시 하기 + - name: CloudFront Invalidation + env: + CLOUD_FRONT_ID: ${{ secrets.AWS_CLOUDFRONT_DISTRIBUTION_ID_DEV}} + run: | + aws cloudfront create-invalidation \ + --distribution-id $CLOUD_FRONT_ID --paths "/*" From c6f3e01f9605afec4bb716b73ba7bbb4fefb6946 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 15:47:49 +0900 Subject: [PATCH 12/23] =?UTF-8?q?fix:=20=ED=99=98=EA=B2=BD=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/front-dev.yml b/.github/workflows/front-dev.yml index 99206a27..64808f80 100644 --- a/.github/workflows/front-dev.yml +++ b/.github/workflows/front-dev.yml @@ -37,9 +37,9 @@ jobs: # 환경 변수 파일을 생성. - name: Generate Environment Variables File for Production run: | - echo "VITE_DEV_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env + echo "VITE_PROD_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env env: - VITE_PROD_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} + VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} # react 빌드 - name: deploy From 526335f5bcf9bded94ca671f788202257fb57afd Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 15:48:38 +0900 Subject: [PATCH 13/23] =?UTF-8?q?build:=20=EB=B0=B0=ED=8F=AC=20=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/front-dev.yml b/.github/workflows/front-dev.yml index 64808f80..17933907 100644 --- a/.github/workflows/front-dev.yml +++ b/.github/workflows/front-dev.yml @@ -37,14 +37,14 @@ jobs: # 환경 변수 파일을 생성. - name: Generate Environment Variables File for Production run: | - echo "VITE_PROD_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env + echo "VITE_DEV_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env env: VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} # react 빌드 - name: deploy run: | - npm run deploy:prod + npm run deploy # react 빌드한 /dist를 s3로 업로드 - name: Upload /dist to S3 From 9ac965ad41d99a584ecaf0e5c1bd78a43ef0b0ca Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 15:58:44 +0900 Subject: [PATCH 14/23] =?UTF-8?q?chore:=20https=20meta=20tag=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 93 +++++++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/index.html b/index.html index 2ef63335..d67600b8 100644 --- a/index.html +++ b/index.html @@ -1,48 +1,55 @@ <!DOCTYPE html> <html lang="en"> - <head> - <meta charset="UTF-8" /> - <link rel="icon" href="/favicon-96x96.png" /> - <meta name="description" content="중앙대학교 소프트웨어학부 학생회 홈페이지입니다. 공지사항, 학년별 게시판, 동아리 가입, 사물함 신청 등의 기능을 제공하여 소프트웨어 학생들의 불편함을 개선합니다."> - <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,viewport-fit=cover" /> - <meta name="theme-color" content="#000000" /> - <meta name="apple-mobile-web-app-capable" content="yes" /> - <meta name="mobile-web-app-capable" content="yes" /> - <meta name="color-scheme" content="light only"/> - <meta name="supported-color-schemes" content="light"/> - <link rel="stylesheet preload" as="style" href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" /> - <link rel="stylesheet preload" as="style" href="https://fonts.googleapis.com/icon?family=Material+Icons" /> - <title>CAUSW</title> +<head> + <meta charset="UTF-8" /> + <link rel="icon" href="/favicon-96x96.png" /> + <meta name="description" + content="중앙대학교 소프트웨어학부 학생회 홈페이지입니다. 공지사항, 학년별 게시판, 동아리 가입, 사물함 신청 등의 기능을 제공하여 소프트웨어 학생들의 불편함을 개선합니다."> + <meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,viewport-fit=cover" /> + <meta name="theme-color" content="#000000" /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="mobile-web-app-capable" content="yes" /> + <meta name="color-scheme" content="light only" /> + <meta name="supported-color-schemes" content="light" /> + <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> + <link rel="stylesheet preload" as="style" + href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" /> + <link rel="stylesheet preload" as="style" href="https://fonts.googleapis.com/icon?family=Material+Icons" /> + + <title>CAUSW</title> + + <link rel="apple-touch-icon" sizes="57x57" href="/icon/apple-icon-57x57.png"> + <link rel="apple-touch-icon" sizes="60x60" href="/icon/apple-icon-60x60.png"> + <link rel="apple-touch-icon" sizes="72x72" href="/icon/apple-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="76x76" href="/icon/apple-icon-76x76.png"> + <link rel="apple-touch-icon" sizes="114x114" href="/icon/apple-icon-114x114.png"> + <link rel="apple-touch-icon" sizes="120x120" href="/icon/apple-icon-120x120.png"> + <link rel="apple-touch-icon" sizes="144x144" href="/icon/apple-icon-144x144.png"> + <link rel="apple-touch-icon" sizes="152x152" href="/icon/apple-icon-152x152.png"> + <link rel="apple-touch-icon" sizes="180x180" href="/icon/apple-icon-180x180.png"> + <link rel="icon" type="image/png" sizes="192x192" href="/icon/android-icon-192x192.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/icon/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="96x96" href="/icon/favicon-96x96.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/icon/favicon-16x16.png"> + <link rel="manifest" href="/manifest.json"> + <meta name="msapplication-TileColor" content="#ffffff"> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> + <meta name="theme-color" content="#ffffff"> +</head> +<script async src="https://www.googletagmanager.com/gtag/js?id=G-0MFP0WN799"></script> +<script> + window.dataLayer = window.dataLayer || []; + function gtag() { dataLayer.push(arguments); } + gtag('js', new Date()); + gtag('config', 'G-0MFP0WN799'); +</script> + +<body> + <div id="root"></div> + <div id="external-root"></div> + <script type="module" src="/src/index.tsx"></script> +</body> - <link rel="apple-touch-icon" sizes="57x57" href="/icon/apple-icon-57x57.png"> - <link rel="apple-touch-icon" sizes="60x60" href="/icon/apple-icon-60x60.png"> - <link rel="apple-touch-icon" sizes="72x72" href="/icon/apple-icon-72x72.png"> - <link rel="apple-touch-icon" sizes="76x76" href="/icon/apple-icon-76x76.png"> - <link rel="apple-touch-icon" sizes="114x114" href="/icon/apple-icon-114x114.png"> - <link rel="apple-touch-icon" sizes="120x120" href="/icon/apple-icon-120x120.png"> - <link rel="apple-touch-icon" sizes="144x144" href="/icon/apple-icon-144x144.png"> - <link rel="apple-touch-icon" sizes="152x152" href="/icon/apple-icon-152x152.png"> - <link rel="apple-touch-icon" sizes="180x180" href="/icon/apple-icon-180x180.png"> - <link rel="icon" type="image/png" sizes="192x192" href="/icon/android-icon-192x192.png"> - <link rel="icon" type="image/png" sizes="32x32" href="/icon/favicon-32x32.png"> - <link rel="icon" type="image/png" sizes="96x96" href="/icon/favicon-96x96.png"> - <link rel="icon" type="image/png" sizes="16x16" href="/icon/favicon-16x16.png"> - <link rel="manifest" href="/manifest.json"> - <meta name="msapplication-TileColor" content="#ffffff"> - <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> - <meta name="theme-color" content="#ffffff"> - </head> - <script async src="https://www.googletagmanager.com/gtag/js?id=G-0MFP0WN799"></script> - <script> - window.dataLayer = window.dataLayer || []; - function gtag(){dataLayer.push(arguments);} - gtag('js', new Date()); - gtag('config', 'G-0MFP0WN799'); - </script> - <body> - <div id="root"></div> - <div id="external-root"></div> - <script type="module" src="/src/index.tsx"></script> - </body> </html> From c2bd6074498be25a1c204193e8a07c9b013a4d35 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Wed, 10 Apr 2024 16:01:18 +0900 Subject: [PATCH 15/23] =?UTF-8?q?chore:=20=EC=9E=98=EB=AA=BB=EB=90=9C=20me?= =?UTF-8?q?ta=20tag=20=EC=A0=9C=EA=B1=B0=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/index.html b/index.html index d67600b8..c51c72cf 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,6 @@ <meta name="mobile-web-app-capable" content="yes" /> <meta name="color-scheme" content="light only" /> <meta name="supported-color-schemes" content="light" /> - <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> <link rel="stylesheet preload" as="style" href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" /> <link rel="stylesheet preload" as="style" href="https://fonts.googleapis.com/icon?family=Material+Icons" /> From 7082a1a000ca82a1010cde738c47aadc27f8e1e6 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Fri, 12 Apr 2024 17:22:44 +0900 Subject: [PATCH 16/23] =?UTF-8?q?chore:=20=EC=8A=A4=ED=81=AC=EB=A6=BD?= =?UTF-8?q?=ED=8A=B8=20=EB=8F=99=EC=9E=91=20=EB=B8=8C=EB=9E=9C=EC=B9=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/front-dev.yml b/.github/workflows/front-dev.yml index 17933907..04355846 100644 --- a/.github/workflows/front-dev.yml +++ b/.github/workflows/front-dev.yml @@ -3,7 +3,7 @@ name: front-dev on: push: branches: - - refactor/#118 + - develop jobs: build: @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 with: - ref: refactor/#118 + ref: develop - name: Setup Node.js uses: actions/setup-node@v3 with: From 676f4a4c8e1a67fb462105e3cf11adb1dd74d570 Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Fri, 12 Apr 2024 17:27:00 +0900 Subject: [PATCH 17/23] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=ED=99=98=EA=B2=BD=20=EB=B3=80=EC=88=98=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/front-deploy.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-deploy.yml index 5b2e3b09..918d10a5 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-deploy.yml @@ -37,10 +37,8 @@ jobs: # 환경 변수 파일을 생성. - name: Generate Environment Variables File for Production run: | - echo "VITE_DEV_SERVER_URL=$VITE_DEV_SERVER_URL" >> .env echo "VITE_PROD_SERVER_URL=$VITE_PROD_SERVER_URL" >> .env env: - VITE_DEV_SERVER_URL: ${{ secrets.VITE_DEV_SERVER_URL }} VITE_PROD_SERVER_URL: ${{ secrets.VITE_PROD_SERVER_URL }} # react 빌드 From 759be44453b14fbba5c418e416e466eab273e6dc Mon Sep 17 00:00:00 2001 From: rbgksqkr <rbgks1937@naver.com> Date: Fri, 12 Apr 2024 17:36:08 +0900 Subject: [PATCH 18/23] =?UTF-8?q?chore:=20production=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A6=BD=ED=8A=B8=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/{front-deploy.yml => front-prod.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{front-deploy.yml => front-prod.yml} (98%) diff --git a/.github/workflows/front-deploy.yml b/.github/workflows/front-prod.yml similarity index 98% rename from .github/workflows/front-deploy.yml rename to .github/workflows/front-prod.yml index 918d10a5..1fbe8975 100644 --- a/.github/workflows/front-deploy.yml +++ b/.github/workflows/front-prod.yml @@ -1,4 +1,4 @@ -name: front-deploy +name: front-prod on: push: From e672fe5b1a0a707671f27947538adfc015f23269 Mon Sep 17 00:00:00 2001 From: selfishAltruism <officialkyus@gmail.com> Date: Wed, 1 May 2024 17:13:41 +0900 Subject: [PATCH 19/23] feat: create error page & connect route --- src/configs/axios.ts | 3 ++ src/configs/path.ts | 2 + src/pages/auth/AuthPageSwitch.tsx | 2 + src/pages/auth/apiError/ApiErrorPage.tsx | 44 +++++++++++++++++++ .../auth/apiError/ApiErrorPageUiStore.tsx | 9 ++++ 5 files changed, 60 insertions(+) create mode 100644 src/pages/auth/apiError/ApiErrorPage.tsx create mode 100644 src/pages/auth/apiError/ApiErrorPageUiStore.tsx diff --git a/src/configs/axios.ts b/src/configs/axios.ts index d5dbccfa..4c863327 100644 --- a/src/configs/axios.ts +++ b/src/configs/axios.ts @@ -44,6 +44,7 @@ API.interceptors.response.use( response: { data }, config, } = error; + if ( (!localStorage.getItem(storageRefreshKey) && config.url !== '/api/v1/users/password/find' && @@ -92,6 +93,8 @@ API.interceptors.response.use( }); } + location.href = PAGE_URL.ApiError; + return Promise.reject({ success: false, }); diff --git a/src/configs/path.ts b/src/configs/path.ts index 8e233ab3..75c7893b 100644 --- a/src/configs/path.ts +++ b/src/configs/path.ts @@ -7,6 +7,8 @@ export enum PAGE_URL { UseTerms = '/auth/useTerms', NoPermission = '/auth/noPermission', + ApiError = '/auth/error', + Home = '/home', // 동아리 diff --git a/src/pages/auth/AuthPageSwitch.tsx b/src/pages/auth/AuthPageSwitch.tsx index 000bd99c..1788eade 100644 --- a/src/pages/auth/AuthPageSwitch.tsx +++ b/src/pages/auth/AuthPageSwitch.tsx @@ -1,6 +1,7 @@ import { Route, Switch } from 'react-router-dom'; import { Admission } from './admission'; +import ApiError from './apiError/ApiErrorPage'; import { FindPassword } from './findPassword'; import { NoPermission } from './noPermission'; import { SignIn } from './signIn'; @@ -17,5 +18,6 @@ export const AuthPageSwitch: React.FC = () => ( <Route path={PAGE_URL.UseTerms} component={UseTerms} /> <Route path={PAGE_URL.FindPassword} component={FindPassword} /> <Route path={PAGE_URL.NoPermission} component={NoPermission} /> + <Route path={PAGE_URL.ApiError} component={ApiError} /> </Switch> ); diff --git a/src/pages/auth/apiError/ApiErrorPage.tsx b/src/pages/auth/apiError/ApiErrorPage.tsx new file mode 100644 index 00000000..21b90b74 --- /dev/null +++ b/src/pages/auth/apiError/ApiErrorPage.tsx @@ -0,0 +1,44 @@ +import styled from '@emotion/styled'; +import { observer } from 'mobx-react-lite'; +import React from 'react'; + +import { PageUiStoreImpl } from './ApiErrorPageUiStore'; + +import { BodyScreen, Header, PageBody, PageStoreHOC } from '@/components'; +import { PAGE_URL } from '@/configs/path'; + +const ApiErrorPage: React.FC = observer(() => { + return ( + <> + <PageBody> + <Wrapper> + <img src="/images/empty.png" alt="Empty list logo" /> + <br /> + 일시적으로 서비스를 사용할 수 없습니다. + <br /> + 해당 문제가 지속적으로 발생하는 경우 + <br /> + 이하 이메일로 연락주세요. + <br /> + caucsedongne@gmail.com + </Wrapper> + </PageBody> + </> + ); +}); + +const Wrapper = styled.div` + margin: 200px 0 30px; + font-size: 17px; + //font-weight: bolder; + color: gray; + line-height: 20px; + text-align: center; + + > img { + margin-bottom: 10px; + width: 100px; + } +`; + +export default PageStoreHOC(<ApiErrorPage />, { store: PageUiStoreImpl }); diff --git a/src/pages/auth/apiError/ApiErrorPageUiStore.tsx b/src/pages/auth/apiError/ApiErrorPageUiStore.tsx new file mode 100644 index 00000000..0028e4cf --- /dev/null +++ b/src/pages/auth/apiError/ApiErrorPageUiStore.tsx @@ -0,0 +1,9 @@ +import { makeAutoObservable } from 'mobx'; + +export class ApiErrorPageUiStore { + constructor() { + makeAutoObservable(this, {}, { autoBind: true }); + } +} + +export const PageUiStoreImpl = new ApiErrorPageUiStore(); From c78a8896631f459f68ba2c9c13dafac33d9ad4d0 Mon Sep 17 00:00:00 2001 From: selfishAltruism <officialkyus@gmail.com> Date: Wed, 1 May 2024 17:26:59 +0900 Subject: [PATCH 20/23] design: error page design (#124) --- src/pages/auth/apiError/ApiErrorPage.tsx | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/pages/auth/apiError/ApiErrorPage.tsx b/src/pages/auth/apiError/ApiErrorPage.tsx index 21b90b74..8a3916a5 100644 --- a/src/pages/auth/apiError/ApiErrorPage.tsx +++ b/src/pages/auth/apiError/ApiErrorPage.tsx @@ -4,21 +4,19 @@ import React from 'react'; import { PageUiStoreImpl } from './ApiErrorPageUiStore'; -import { BodyScreen, Header, PageBody, PageStoreHOC } from '@/components'; +import { PageBody, PageStoreHOC, Header } from '@/components'; import { PAGE_URL } from '@/configs/path'; const ApiErrorPage: React.FC = observer(() => { return ( <> + <Header withBack={PAGE_URL.Home} title="500 Error" /> <PageBody> <Wrapper> - <img src="/images/empty.png" alt="Empty list logo" /> - <br /> - 일시적으로 서비스를 사용할 수 없습니다. - <br /> - 해당 문제가 지속적으로 발생하는 경우 - <br /> - 이하 이메일로 연락주세요. + <img src="/images/mascot-study.png" alt="Api Error Img" /> + <h4>일시적으로 서비스를 이용할 수 없습니다.</h4> + 해당 문제가 지속적으로 발생하는 경우 <br /> + 아래 이메일로 문의해주세요. <br /> caucsedongne@gmail.com </Wrapper> @@ -28,16 +26,21 @@ const ApiErrorPage: React.FC = observer(() => { }); const Wrapper = styled.div` - margin: 200px 0 30px; - font-size: 17px; + margin: 110px 0 30px; + font-size: 14px; //font-weight: bolder; color: gray; line-height: 20px; text-align: center; > img { + margin-bottom: -10px; + width: 150px; + } + + > h4 { + font-size: 15px; margin-bottom: 10px; - width: 100px; } `; From 505fdb89f37a390ebc23ee50223aaf5ec87d5805 Mon Sep 17 00:00:00 2001 From: selfishAltruism <officialkyus@gmail.com> Date: Wed, 1 May 2024 17:30:50 +0900 Subject: [PATCH 21/23] design: error page design (#124) --- src/pages/auth/apiError/ApiErrorPage.tsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/pages/auth/apiError/ApiErrorPage.tsx b/src/pages/auth/apiError/ApiErrorPage.tsx index 8a3916a5..efd9088c 100644 --- a/src/pages/auth/apiError/ApiErrorPage.tsx +++ b/src/pages/auth/apiError/ApiErrorPage.tsx @@ -14,10 +14,14 @@ const ApiErrorPage: React.FC = observer(() => { <PageBody> <Wrapper> <img src="/images/mascot-study.png" alt="Api Error Img" /> - <h4>일시적으로 서비스를 이용할 수 없습니다.</h4> - 해당 문제가 지속적으로 발생하는 경우 <br /> + <h4> + 일시적으로 서비스를 <br /> + 이용할 수 없습니다. + </h4> + 문제가 지속적으로 발생하는 경우 <br /> 아래 이메일로 문의해주세요. <br /> + <br /> caucsedongne@gmail.com </Wrapper> </PageBody> @@ -26,20 +30,19 @@ const ApiErrorPage: React.FC = observer(() => { }); const Wrapper = styled.div` - margin: 110px 0 30px; - font-size: 14px; + margin: 100px 0 30px; + font-size: 12px; //font-weight: bolder; color: gray; - line-height: 20px; text-align: center; > img { - margin-bottom: -10px; - width: 150px; + margin-bottom: -5px; + width: 170px; } > h4 { - font-size: 15px; + font-size: 18px; margin-bottom: 10px; } `; From 40c4994da53f135d630f13728e0ebcf0572ba388 Mon Sep 17 00:00:00 2001 From: selfishAltruism <officialkyus@gmail.com> Date: Wed, 1 May 2024 18:53:27 +0900 Subject: [PATCH 22/23] chore: error page design (#124) --- src/pages/auth/apiError/ApiErrorPage.tsx | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/pages/auth/apiError/ApiErrorPage.tsx b/src/pages/auth/apiError/ApiErrorPage.tsx index efd9088c..03dc55a0 100644 --- a/src/pages/auth/apiError/ApiErrorPage.tsx +++ b/src/pages/auth/apiError/ApiErrorPage.tsx @@ -14,15 +14,10 @@ const ApiErrorPage: React.FC = observer(() => { <PageBody> <Wrapper> <img src="/images/mascot-study.png" alt="Api Error Img" /> - <h4> - 일시적으로 서비스를 <br /> - 이용할 수 없습니다. - </h4> + <h4>일시적으로 서비스를 이용할 수 없습니다.</h4> 문제가 지속적으로 발생하는 경우 <br /> 아래 이메일로 문의해주세요. - <br /> - <br /> - caucsedongne@gmail.com + <br />( caucsedongne@gmail.com ) </Wrapper> </PageBody> </> @@ -33,17 +28,17 @@ const Wrapper = styled.div` margin: 100px 0 30px; font-size: 12px; //font-weight: bolder; - color: gray; + color: #545454; text-align: center; > img { - margin-bottom: -5px; + margin-bottom: -10px; width: 170px; } > h4 { - font-size: 18px; - margin-bottom: 10px; + font-size: 16px; + margin-bottom: 30px; } `; From e3598d72aef998c0e225bf3ac0aa103d1062d27a Mon Sep 17 00:00:00 2001 From: selfishAltruism <officialkyus@gmail.com> Date: Thu, 16 May 2024 18:00:50 +0900 Subject: [PATCH 23/23] feat: add android pwa asserlink.json --- public/.well-known/assetlinks.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 public/.well-known/assetlinks.json diff --git a/public/.well-known/assetlinks.json b/public/.well-known/assetlinks.json new file mode 100644 index 00000000..5a42e62b --- /dev/null +++ b/public/.well-known/assetlinks.json @@ -0,0 +1,8 @@ +[{ + "relation": ["delegate_permission/common.handle_all_urls"], + "target": { + "namespace": "android_app", + "package_name": "kr.co.causw.twa", + "sha256_cert_fingerprints": ["68:47:73:4E:14:52:93:02:99:11:0D:06:6F:4B:C7:24:1A:10:90:11:2C:F7:BA:63:F9:75:37:4D:7C:93:13:6A"] + } + }]