Skip to content

style: add marker styling to Prose component for consistent list form… #16

style: add marker styling to Prose component for consistent list form…

style: add marker styling to Prose component for consistent list form… #16

Workflow file for this run

name: CI
on:
# Gate for merging into main (required by branch protection); runs against the
# merge result before merge. Production deploy is gated by this PR check, so a
# redundant push-to-main run is intentionally omitted.
pull_request:
branches: [main]
# Early feedback while iterating on staging.
push:
branches: [staging]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
verify:
runs-on: ubuntu-latest
env:
# Public, non-secret API base used at build/prerender time by
# src/features/portfolio/data/github-contributions.ts (which has NO
# fallback for this var — see "Why the step order / env matters" below).
# Value is the public default from .env.example; safe to hardcode.
GITHUB_CONTRIBUTIONS_API_URL: https://github-contributions-api.jogruber.de
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Install Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
- name: Install pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
with:
version: 11.5.3
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .nvmrc
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm lint
- name: Format check
run: pnpm format:check
- name: Test
run: pnpm test:run
# Persist Next.js's build cache (.next/cache) between runs to avoid the
# "No Cache Detected" warning and speed up rebuilds. The pnpm store is
# already cached via `cache: pnpm` on setup-node, so only .next/cache is
# cached here. Key busts on lockfile or source changes; restore-keys falls
# back to the latest cache for the same lockfile when only source changed.
# hashFiles has no brace expansion, so extensions are listed explicitly.
- name: Cache Next.js build
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('src/**/*.js', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.tsx', 'src/**/*.mdx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}-
# Build MUST run before Typecheck: `tsc --noEmit` depends on the
# `PageProps` global that Next.js generates into `.next/types/**` during
# `next build`. On a fresh checkout (no `.next/`), `pnpm check-types` fails
# with "Cannot find name 'PageProps'" until a build has generated those types.
- name: Build (includes registry build via Bun)
run: pnpm build
- name: Typecheck
run: pnpm check-types
- name: Validate registry
run: pnpm registry:validate