Skip to content

Commit b3d9c40

Browse files
committed
chore: logo 적용 및 workflow 추가
1 parent 91dd1ae commit b3d9c40

7 files changed

Lines changed: 99 additions & 9 deletions

File tree

.github/workflows/check-build.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Check Build
2+
on:
3+
pull_request:
4+
types: [opened, synchronize, reopened]
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
12+
- name: Setup Node.js
13+
uses: actions/setup-node@v4
14+
with:
15+
node-version: 22
16+
17+
- name: Create .env file
18+
run: |
19+
echo "${{ secrets.PROD_ENV }}" > .env
20+
21+
- name: Enable Corepack & Prepare pnpm
22+
run: |
23+
corepack enable
24+
corepack prepare pnpm@latest --activate
25+
26+
- name: Install dependencies
27+
run: pnpm install
28+
29+
- name: Build
30+
run: pnpm build --filter=web
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Deploy to Vercel with Redeploy-on-Failure
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
deploy:
10+
runs-on: ubuntu-latest
11+
env:
12+
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
13+
VERCEL_ORG_ID: ${{ secrets.VERCEL_TEAM_ID }}
14+
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: "22.x"
24+
25+
- name: Link Vercel Project
26+
run: |
27+
npx vercel link --cwd . --yes \
28+
--token "$VERCEL_TOKEN" \
29+
--scope "$VERCEL_ORG_ID" \
30+
--project "$VERCEL_PROJECT_ID"
31+
32+
- name: Deploy & Redeploy on Failure
33+
shell: bash
34+
run: |
35+
set +e
36+
37+
# 1) Initial production deploy (capture logs)
38+
npx vercel --prod --yes \
39+
--token "$VERCEL_TOKEN" \
40+
--scope "$VERCEL_ORG_ID" > deploy.log 2>&1
41+
EXIT_CODE=$?
42+
cat deploy.log
43+
44+
# Extract deployment URL
45+
DEPLOY_URL=$(grep -Eo 'https?://[A-Za-z0-9.-]+\.vercel\.app' deploy.log | head -n1)
46+
47+
# 2) If deploy failed, Redeploy using URL
48+
if [ $EXIT_CODE -ne 0 ]; then
49+
echo "❗️ Initial deployment failed (exit code=$EXIT_CODE). Redeploying"
50+
npx vercel redeploy "$DEPLOY_URL" \
51+
--token "$VERCEL_TOKEN" \
52+
--scope "$VERCEL_ORG_ID"
53+
REDO_EXIT=$?
54+
if [ $REDO_EXIT -ne 0 ]; then
55+
echo "::error::Redeploy failed (exit code=$REDO_EXIT)!"
56+
exit 1
57+
fi
58+
fi

apps/web/src/app/favicon.ico

136 KB
Binary file not shown.

apps/web/src/assets/logo.svg

Lines changed: 1 addition & 1 deletion
Loading

apps/web/src/components/(with-side-bar)/layout/index.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useEffect } from "react";
44
import Link from "next/link";
55
import { usePathname, useRouter, useSearchParams } from "next/navigation";
66

7+
import Logo from "@/assets/logo.svg";
78
import SentinelSpinner from "@/components/sentinel-spinner";
89
import { useGetAllTopics } from "@/lib/tanstack/query/topic";
910
import { useMobileMenuStore } from "@/lib/zustand/mobile-menu-store";
@@ -79,9 +80,7 @@ export default function Sidebar() {
7980
href="/dashboard"
8081
className="border-sidebar-border mb-8 flex items-center gap-3 border-b pb-4"
8182
>
82-
<div className="bg-primary flex h-10 w-10 items-center justify-center rounded-md text-xl font-bold text-white">
83-
L
84-
</div>
83+
<Logo className="size-10" />
8584
<div className="text-primary text-2xl font-bold">LinkyBoard</div>
8685
</Link>
8786

apps/web/src/components/(with-side-bar)/layout/skeleton.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import Link from "next/link";
22

3+
import Logo from "@/assets/logo.svg";
4+
35
export default function SidebarSkeleton() {
46
return (
57
<aside className="bg-sidebar border-sidebar-border fixed z-50 hidden h-screen w-70 overflow-y-auto border-r p-6 transition-transform duration-300 lg:relative lg:block">
68
<Link
79
href="/dashboard"
810
className="border-sidebar-border flex items-center gap-3 border-b pb-4"
911
>
10-
<div className="bg-primary flex h-10 w-10 items-center justify-center rounded-md text-xl font-bold text-white">
11-
L
12-
</div>
12+
<Logo className="size-10" />
13+
1314
<div className="text-primary text-2xl font-bold">LinkyBoard</div>
1415
</Link>
1516
</aside>

apps/web/src/components/landing/header.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { useEffect, useState } from "react";
44
import { useRouter } from "next/navigation";
55

6+
import Logo from "@/assets/logo.svg";
67
import { Button } from "@/components/ui/button";
78
import { scrollToSection, useScrollSpy } from "@/hooks/use-intersection-observer";
89
import { cn } from "@repo/ui/utils/cn";
@@ -57,11 +58,12 @@ export default function Header() {
5758
<nav className="mx-auto flex max-w-6xl items-center justify-between px-4 py-4">
5859
<a
5960
href="#"
60-
className="text-primary hover:text-primary text-2xl font-bold transition-colors"
61+
className="text-primary hover:text-primary flex items-center gap-2 text-2xl font-bold transition-colors"
6162
onClick={onLogoClick}
6263
aria-label="홈으로 이동"
6364
>
64-
LinkyBoard
65+
<Logo className="size-10" />
66+
<span>LinkyBoard</span>
6567
</a>
6668

6769
{/* Desktop Navigation */}

0 commit comments

Comments
 (0)