diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml index ec528a8..732c543 100644 --- a/.github/workflows/preview.yaml +++ b/.github/workflows/preview.yaml @@ -17,6 +17,10 @@ jobs: - uses: actions/checkout@v4 - name: Install Vercel CLI run: npm install --global vercel@latest + - name: Verify required environment variables + run: | + test -n "$COSMIC_BUCKET_SLUG" || (echo "::error::Missing COSMIC_BUCKET_SLUG GitHub secret" && exit 1) + test -n "$COSMIC_READ_KEY" || (echo "::error::Missing COSMIC_READ_KEY GitHub secret" && exit 1) - name: Pull Vercel Environment Information run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} - name: Build Project Artifacts diff --git a/.github/workflows/production.yaml b/.github/workflows/production.yaml index b207f8c..e87c24e 100644 --- a/.github/workflows/production.yaml +++ b/.github/workflows/production.yaml @@ -17,6 +17,10 @@ jobs: - uses: actions/checkout@v4 - name: Install Vercel CLI run: npm install --global vercel@latest + - name: Verify required environment variables + run: | + test -n "$COSMIC_BUCKET_SLUG" || (echo "::error::Missing COSMIC_BUCKET_SLUG GitHub secret" && exit 1) + test -n "$COSMIC_READ_KEY" || (echo "::error::Missing COSMIC_READ_KEY GitHub secret" && exit 1) - name: Pull Vercel Environment Information run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} - name: Build Project Artifacts diff --git a/app/api/contact/route.ts b/app/api/contact/route.ts index 58a5d3b..82f544b 100644 --- a/app/api/contact/route.ts +++ b/app/api/contact/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + const cosmicServices = new CosmicServices(); export async function POST(req: Request) { @@ -23,7 +25,7 @@ export async function POST(req: Request) { } return NextResponse.json({ ok: true }); - } catch (error) { + } catch { return NextResponse.json({ error: "Server error" }, { status: 500 }); } } diff --git a/app/api/get-involved/families/route.ts b/app/api/get-involved/families/route.ts index edbff85..1e38c42 100644 --- a/app/api/get-involved/families/route.ts +++ b/app/api/get-involved/families/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + export async function GET() { const cosmic = new CosmicServices(); const data = await cosmic.getFamilyInvolvementPage(); diff --git a/app/api/get-involved/students/route.ts b/app/api/get-involved/students/route.ts index 0b524dc..e764381 100644 --- a/app/api/get-involved/students/route.ts +++ b/app/api/get-involved/students/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + export async function GET() { const cosmic = new CosmicServices(); const data = await cosmic.getStudentInvolvementPage(); @@ -11,4 +13,4 @@ export async function GET() { -} \ No newline at end of file +} diff --git a/app/api/home/route.ts b/app/api/home/route.ts index 3671de4..f23a0af 100644 --- a/app/api/home/route.ts +++ b/app/api/home/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + export async function GET() { const cosmic = new CosmicServices(); const homePage = await cosmic.getHomePage(); diff --git a/app/api/news/thumbnails/route.ts b/app/api/news/thumbnails/route.ts index 54e0865..cbf99d9 100644 --- a/app/api/news/thumbnails/route.ts +++ b/app/api/news/thumbnails/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + const cosmicServices = new CosmicServices(); // GET /api/news/thumbnails?limit=15&page=0 @@ -11,7 +13,7 @@ export async function GET(req: Request) { try { const thumbnails = await cosmicServices.getNewsPostThumbnails(limit, page); return NextResponse.json({ thumbnails }); - } catch (error) { + } catch { return NextResponse.json({ error: "Failed to fetch news thumbnails" }, { status: 500 }); } } diff --git a/app/api/research/publications/route.ts b/app/api/research/publications/route.ts index 3a4e8b2..8ba65c8 100644 --- a/app/api/research/publications/route.ts +++ b/app/api/research/publications/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from "next/server"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + const cosmicServices = new CosmicServices(); export async function GET() { @@ -10,7 +12,7 @@ export async function GET() { return NextResponse.json({ error: "Failed to fetch publications" }, { status: 500 }); } return NextResponse.json({ data }); - } catch (error) { + } catch { return NextResponse.json({ error: "Server error" }, { status: 500 }); } } diff --git a/app/research/topics/page.tsx b/app/research/topics/page.tsx index 68a0845..d2c0144 100644 --- a/app/research/topics/page.tsx +++ b/app/research/topics/page.tsx @@ -1,6 +1,8 @@ import Image from "next/image"; import CosmicServices from "@/services/CosmicServices"; +export const dynamic = "force-dynamic"; + export default async function ResearchTopicsPage() { const cosmic = new CosmicServices(); const data = await cosmic.getResearchTopicsPage(); @@ -81,4 +83,4 @@ export default async function ResearchTopicsPage() { ); -} \ No newline at end of file +} diff --git a/app/team/page.tsx b/app/team/page.tsx index 9a80c17..5390561 100644 --- a/app/team/page.tsx +++ b/app/team/page.tsx @@ -3,6 +3,8 @@ import StaffCard from "@/components/StaffCard"; import UndergradCard from "@/components/UndergradCard"; import { TeamMember } from "@/services/CosmicTypes"; +export const dynamic = "force-dynamic"; + function SectionHeader({ title }: { title: string }) { return (