diff --git a/.eslintrc.json b/.eslintrc.json index 24ad2aa..317c458 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -31,7 +31,7 @@ { "ts": "never", "tsx": "never" } ], "no-shadow": "off", - "@typescript-eslint/no-shadow": "error", + "@typescript-eslint/no-shadow": "off", "@typescript-eslint/explicit-function-return-type": [ "error", { "allowExpressions": true } diff --git a/.github/workflows/discord-pr.yaml b/.github/workflows/discord-pr.yaml new file mode 100644 index 0000000..4b40806 --- /dev/null +++ b/.github/workflows/discord-pr.yaml @@ -0,0 +1,25 @@ +name: Discord PR Notification + +on: + pull_request: + types: [opened, reopened] + +jobs: + notify_discord: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Discord Notification + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_PR_WEBHOOK }} + DISCORD_USERNAME: GitHub + DISCORD_AVATAR: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + uses: Ilshidur/action-discord@master + with: + args: | + 새로운 PR이 열렸습니다!<@${{ secrets.DISCORD_ID_1 }}> <@${{ secrets.DISCORD_ID_2 }}> + PR: ${{ github.event.pull_request.html_url }} + 작성자: ${{ github.event.pull_request.user.login }} + 제목: ${{ github.event.pull_request.title }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 582e3dd..60d28d0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,18 +7,81 @@ jobs: build: runs-on: ubuntu-20.04 steps: - - name: Checkout source code. + - name: Checkout source code uses: actions/checkout@v3 - + with: + fetch-depth: 0 + + - name: Get commit message and author + id: get_commit_info + run: | + echo "::set-output name=message::$(git log --format=%s -n 1)" + echo "::set-output name=author::$(git log --format=%an -n 1)" + echo "::set-output name=author_username::$(git log --format=%ae -n 1 | cut -d@ -f1)" + - name: Install dependencies run: yarn install - + - name: Generate build + id: build + env: + VITE_API_BASE_URL: ${{ secrets.VITE_API_BASE_URL }} + VITE_OAUTH_KAKAO_REST_API_KEY: ${{ secrets.VITE_OAUTH_KAKAO_REST_API_KEY }} + VITE_OAUTH_KAKAO_CLIENT_SECRET_CODE: ${{ secrets.VITE_OAUTH_KAKAO_CLIENT_SECRET_CODE }} + VITE_OAUTH_KAKAO_REDIRECT_URI: ${{ secrets.VITE_OAUTH_KAKAO_REDIRECT_URI }} run: yarn build - - - name: Deploy + continue-on-error: true + + - name: Deploy to S3 + id: deploy + if: steps.build.outcome == 'success' env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} run: | aws s3 sync --region ap-northeast-2 dist s3://alignlab-client --delete + continue-on-error: true + + - name: Invalidate CloudFront Cache + if: steps.deploy.outcome == 'success' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + CLOUDFRONT_DISTRIBUTION_ID: ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }} + run: | + aws cloudfront create-invalidation --region ap-northeast-2 --distribution-id $CLOUDFRONT_DISTRIBUTION_ID --paths "/*" + + - name: Discord notification - Success + if: steps.deploy.outcome == 'success' + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_DEPLOY_WEBHOOK }} + DISCORD_USERNAME: GitHub + DISCORD_AVATAR: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + uses: Ilshidur/action-discord@master + with: + args: | + 🎉 배포가 성공적으로 완료되었습니다! + 브랜치: develop + 커밋: ${{ steps.get_commit_info.outputs.message }} + 작성자: ${{ steps.get_commit_info.outputs.author }} + + - name: Discord notification - Failure + if: steps.build.outcome == 'failure' || steps.deploy.outcome == 'failure' + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_DEPLOY_WEBHOOK }} + DISCORD_USERNAME: GitHub + DISCORD_AVATAR: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + uses: Ilshidur/action-discord@master + with: + args: | + ❌ ${{ steps.build.outcome == 'failure' && '빌드 중' || '배포 중' }} 오류가 발생했습니다. + 브랜치: develop + 커밋: ${{ steps.get_commit_info.outputs.message }} + 작성자: <@${{ secrets.DISCORD_ID_1 }}> + 실패한 워크플로우: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + ${{ steps.build.outcome == 'failure' && '빌드 오류 메시지:' || '' }} + ${{ steps.build.outcome == 'failure' && steps.build.outputs.stderr || '' }} + + - name: Check deploy result + if: steps.build.outcome == 'failure' || steps.deploy.outcome == 'failure' + run: exit 1 diff --git a/index.html b/index.html index d82565f..f353d30 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,9 @@ - -
서버와 연결 중입니다.
} + {isConnected === "disconnected" && myGroupData &&서버와 연결 끊어졌습니다.
} + {isConnected === "success" && myGroupData && crews.length === 0 && ( +접속자가 없습니다.
+ )} + {isConnected === "success" && myGroupData && crews.length > 0 && ( +{myGroupData?.description}
+