Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: PR Checks (Frontend)

on:
pull_request:
branches:
- dev
paths:
Comment on lines +4 to +7

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI is configured to run only for PRs targeting dev. If the standard flow is merging dev into main (as this PR indicates), PRs opened against main won't get lint/build checks. Consider adding main to the pull_request.branches list (or switching to pull_request without branch filtering).

Copilot uses AI. Check for mistakes.
- '**'
- '.github/workflows/ci.yml'

jobs:
lint_and_build:
name: Lint & Build
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Run Lint
run: pnpm lint

- name: Build Application
run: pnpm build
55 changes: 55 additions & 0 deletions .github/workflows/vercel-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Deploy to vercel on merge
on:
push:
branches:
- dev

Comment on lines +1 to +6

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow name/intent says "Deploy to vercel on merge", but this triggers on push to dev. If the goal is to deploy after merges to the production branch, update the trigger to push on main (or pull_request with types: [closed] + if: github.event.pull_request.merged == true targeting main).

Copilot uses AI. Check for mistakes.
jobs:
build_and_deploy:
runs-on: ubuntu-latest
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

Comment on lines +29 to +41

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actions/setup-node is already configured with cache: 'pnpm', and this workflow also adds a separate actions/cache step for the pnpm store. This is redundant and increases maintenance surface; prefer one caching approach (usually setup-node's built-in pnpm cache) unless you have a measured need for the manual cache.

Suggested change
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

Copilot uses AI. Check for mistakes.
- name: Install Vercel CLI
run: npm install --global vercel@latest

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm install --global vercel@latest makes builds non-reproducible and can break CI/CD if Vercel CLI releases a breaking change. Pin the Vercel CLI to a specific version (or at least a major) to keep deployments deterministic.

Suggested change
run: npm install --global vercel@latest
run: npm install --global vercel@39

Copilot uses AI. Check for mistakes.

- name: Pull Vercel Environment Information
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build Next.js Application
run: pnpm build

Comment on lines +51 to +53

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow runs pnpm build and then vercel deploy --prod without --prebuilt. In this mode, Vercel CLI performs the build on Vercel, so the local pnpm build is typically redundant time/cost. If you want to deploy the local build artifacts, switch to vercel build + vercel deploy --prebuilt; otherwise remove the local build step.

Suggested change
- name: Build Next.js Application
run: pnpm build

Copilot uses AI. Check for mistakes.
- name: Deploy to Vercel
run: vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }}
Comment on lines +45 to +55

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This job pulls --environment=production and deploys with --prod regardless of branch context. With the current trigger (pushes to dev), it can publish unreviewed commits to production. Consider using Vercel preview deployments for dev and reserving --prod for main only.

Copilot uses AI. Check for mistakes.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ yarn-error.log*

# typescript
*.tsbuildinfo
next-env.d.ts
next-env.d.ts
.vercel
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"embla-carousel-react": "8.5.1",
"immer": "latest",
"lucide-react": "^0.454.0",
"next": "15.1.6",
"next": "16.1.6",

Copilot AI Feb 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

next is upgraded to 16.x, but eslint-config-next remains on ^15.1.6 (see package.json devDependencies). These versions are intended to stay in sync; keeping the old config can cause lint rule mismatches or missing Next 16 rules. Update eslint-config-next (and any related @next/*eslint* packages) to the corresponding 16.x version.

Copilot uses AI. Check for mistakes.
"next-themes": "^0.4.6",
"react": "19.0.0",
"react-day-picker": "9.8.0",
Expand Down
Loading