Skip to content

feat: migrate CI to pnpm and add Breadcrumb component#171

Merged
dinahmaccodes merged 1 commit into
Navin-xmr:mainfrom
ExcelDsigN-tech:issue#pnpm-ci-breadcrumb
Apr 3, 2026
Merged

feat: migrate CI to pnpm and add Breadcrumb component#171
dinahmaccodes merged 1 commit into
Navin-xmr:mainfrom
ExcelDsigN-tech:issue#pnpm-ci-breadcrumb

Conversation

@ExcelDsigN-tech
Copy link
Copy Markdown

[FE] Add Breadcrumb Component and Migrate CI to pnpm (Closes #151 , Closes #156)

Overview

This PR introduces a reusable, accessible Breadcrumb navigation component for the frontend and updates our GitHub Actions CI workflow to standardize on pnpm. These changes improve both the user experience through better navigation and the developer experience through faster, more reliable CI builds.

Feature Summary

  • Reusable Breadcrumb Component: A highly configurable navigation element supporting dynamic hierarchies, custom separators, and responsive design.
  • CI Workflow Migration: Fully transitioned .github/workflows/ci.yml from npm to pnpm to leverage faster dependency installation and efficient caching.
  • Accessibility (A11y): Breadcrumbs include aria-label="Breadcrumb" and aria-current="page" for screen reader compatibility.
  • Responsive Navigation: Implemented mobile-first styling to ensure the breadcrumb trail remains usable on smaller viewports.

Technical Implementation

  • Component Architecture: Created at frontend/src/components/common/Breadcrumb/, utilizing a clean separation between logic (Breadcrumb.tsx) and definitions (types.ts).
  • CI Optimization:
    • Integrated pnpm/action-setup@v2 into the workflow.
    • Configured the actions/setup-node action to use cache: 'pnpm'.
    • Switched to pnpm install --frozen-lockfile to ensure deterministic builds in the cloud environment.
  • Barrel Exports: Updated frontend/src/components/index.ts to include the Breadcrumb, maintaining our flat-import structure.

Test Coverage

  • Unit Tests: Verified that the items array renders correctly and that the "current" page is non-clickable.
  • Component Testing: Confirmed separator characters (e.g., / or >) display correctly between segments.
  • Integration: Successfully ran pnpm run build and pnpm run lint in the updated CI environment.

Checklists

  • Create Breadcrumb component and types at specified paths
  • Implement responsive behavior and ARIA attributes
  • Export component from the main components barrel file
  • Update .github/workflows/ci.yml to use pnpm/action-setup@v2
  • Update CI cache keys to reference pnpm-lock.yaml
  • Replace all npm commands with pnpm in the CI pipeline
  • Verify pnpm run lint, test, and build pass locally and in CI

@dinahmaccodes
Copy link
Copy Markdown
Collaborator

Checking CI

@dinahmaccodes dinahmaccodes merged commit d11a1dc into Navin-xmr:main Apr 3, 2026
3 checks passed
@dinahmaccodes
Copy link
Copy Markdown
Collaborator

LGTM!!! Solid work here actually

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FE:] Build a reusable Breadcrumb navigation component [FE:] Update CI workflow to use pnpm

2 participants