Skip to content

chore: fix github pages deployment action#23

Merged
aritra1999 merged 14 commits intomainfrom
chore/landing-and-docs
Feb 11, 2026
Merged

chore: fix github pages deployment action#23
aritra1999 merged 14 commits intomainfrom
chore/landing-and-docs

Conversation

@aritra1999
Copy link
Copy Markdown
Owner

Attempt 4

aritra1999 and others added 13 commits February 7, 2026 15:12
Ignore .agents/ directory used by development tools to prevent
committing temporary agent files and state.
Add a modern SvelteKit-based marketing site featuring:

- Hero section with animated background and GitHub stars display
- Feature showcase with numbered list layout
- Interactive documentation tabs (Getting Started, File Format, Variables,
  JSON Viewer, Keyboard Shortcuts)
- Bug report and feature request links
- Glassmorphic floating navbar with minimal logo
- Smooth scroll indicator
- Mobile-responsive design
- shadcn-svelte UI components with custom brutalist styling

The site uses:
- SvelteKit with TypeScript and Svelte 5 runes
- Tailwind CSS v4 for styling
- @sveltejs/adapter-static for GitHub Pages deployment
- Space Grotesk font family for consistent typography
- Lowercase text treatment and refined minimalist aesthetic

All documentation content is embedded in the landing page for easy
discovery and quick reference.
Add automated deployment workflow that builds and deploys the marketing
site to GitHub Pages on every push to main branch.

The workflow:
- Builds the SvelteKit site with static adapter
- Configures base path for GitHub Pages subdirectory
- Uses GitHub Pages artifact upload/deploy actions
- Runs on Node.js 20 with npm caching for faster builds

Deployment will be available at https://aritra1999.github.io/httpyum/
once GitHub Pages is enabled in repository settings.
Move CSS and markup from +page.svelte into dedicated component files
for better organization and maintainability. Each section (Navbar, Hero,
Features, Documentation, Contribute, Footer) is now self-contained with
its own styles.

Changes:
- Create Navbar.svelte with navigation bar styles
- Create Hero.svelte with hero section and animated background
- Create Features.svelte with feature list grid layout
- Create Documentation.svelte with tabs and code blocks
- Create Contribute.svelte with bug report section
- Create Footer.svelte with footer links
- Reduce +page.svelte from ~1360 lines to ~150 lines
- Keep all state management and API calls in +page.svelte
- Preserve all existing functionality and responsive behavior

Benefits:
- Improved code organization and maintainability
- Better separation of concerns
- Easier to locate and modify specific sections
- Styles colocated with their components
Convert all component styles from CSS modules to Tailwind utility classes
for better maintainability and consistency. This reduces the overall CSS
footprint by ~92% while maintaining identical visual appearance.

Changes:
- Replace ~1,270 lines of raw CSS with Tailwind utility classes
- Convert Navbar, Hero, Features, Documentation, Contribute, Footer components
- Retain only essential CSS: button styling and @Keyframes animations
- Use Tailwind responsive modifiers (max-md:, max-[480px]:) for breakpoints
- Keep custom brutalist button styles in Hero component
- Preserve all animations (moveBoxes, bounce, fadeIn)

Benefits:
- Improved maintainability with utility-first approach
- Consistent design tokens from Tailwind config
- Better visibility of styles in markup
- Automatic purging of unused styles in production
- Clearer responsive design patterns
Replace black background with light gray to prevent jarring visual
transition while the demo image loads. The border is now clearly
visible against a neutral background instead of appearing to merge
with a black box.
Replace npm ci with fresh npm install to properly handle Rollup's
optional dependencies. This fixes the MODULE_NOT_FOUND error for
@rollup/rollup-linux-x64-gnu on GitHub Actions runners.

The issue occurs due to npm's handling of optional dependencies
when using npm ci with cached node_modules.
Add prerender configuration and fix base path handling for GitHub Pages
deployment. This resolves the build errors in the CI/CD pipeline.

Changes:
- Add +layout.js with prerender export to enable static generation
- Import and use base path from $app/paths in Navbar component
- Ensures all internal links respect the configured base path

Fixes:
- 'Could not resolve entry module' error
- '404 / does not begin with base' error during prerendering
SvelteKit requires running 'svelte-kit sync' to generate internal
configuration files (.svelte-kit directory) before the build process.
Without this step, Vite cannot resolve the project structure and fails
with 'Could not resolve entry module index.html' error.

Changes:
- Add explicit 'Prepare SvelteKit' step in deploy workflow
- Remove error suppression (|| echo '') from prepare script to ensure
  proper failure visibility in CI

Fixes deployment failure in GitHub Actions where the build was looking
for a non-existent index.html entry point.
Replace npm with Bun in the GitHub Actions deployment workflow to match
the local development environment. The project uses bun.lock for
dependency management, so CI should use the same package manager.

Changes:
- Replace setup-node action with setup-bun action
- Change npm install to bun install (removes unnecessary cleanup)
- Update all npm run commands to bun run commands

Benefits:
- Consistency between local and CI environments
- Faster dependency installation and build times
- Uses correct lockfile (bun.lock instead of package-lock.json)
The deployment was failing because vite build ran before SvelteKit
generated its configuration files, resulting in "Could not resolve
entry module 'index.html'" error. Running prepare and build
sequentially in the same command ensures .svelte-kit directory exists
before the build starts.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 11, 2026

📝 Walkthrough

Walkthrough

Updated the CI/CD workflow to use Bun instead of Node for package management, including setup tool replacement, install command change, and build command updates. Simplified the prepare script in site/package.json by removing the fallback echo command.

Changes

Cohort / File(s) Summary
CI/CD Workflow
.github/workflows/deploy.yml
Replaced Node-based setup (node-version 20 with npm) with Bun setup (bun-version latest). Updated install step from npm install to bun install and build step from npm run build to sequential bun run prepare and bun run build commands.
Build Configuration
site/package.json
Removed fallback || echo '' from the prepare script, changing from svelte-kit sync || echo '' to direct svelte-kit sync command, causing the prepare step to fail on error instead of silently succeeding.

Possibly related PRs

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The description is vague and non-descriptive, providing only 'Attempt 4' without conveying meaningful information about the changeset. Replace the placeholder description with details about the specific changes, such as: switching from Node/npm to Bun in CI, updating the prepare script, or fixing the GitHub Pages deployment workflow.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change—migrating the CI workflow from Node/npm to Bun and fixing the GitHub Pages deployment process.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/landing-and-docs

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
.github/workflows/deploy.yml (2)

24-27: Consider pinning the Bun version for reproducible CI builds.

Using bun-version: latest means the CI runtime can change unexpectedly when a new Bun release drops, potentially causing flaky or broken builds that are hard to diagnose. Pinning to a specific version (e.g., 1.x.y) and updating it intentionally is safer.

       - name: Setup Bun
         uses: oven-sh/setup-bun@v2
         with:
-          bun-version: latest
+          bun-version: "1.2.4"

29-30: Use --frozen-lockfile for deterministic CI installs.

Without --frozen-lockfile, bun install may update the lockfile if it drifts from package.json, leading to non-reproducible builds. In CI, you generally want to fail fast if the lockfile is out of sync.

       - name: Install dependencies
-        run: cd site && bun install
+        run: cd site && bun install --frozen-lockfile

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Resolved conflicts in .github/workflows/deploy.yml by keeping the
combined prepare+build approach from our branch, which is cleaner
and more reliable than the duplicate prepare steps in main.

Merges commits from main:
- bfc9425 chore: fix github pages deployment action (#22)
- cfa134e chore: fix github pages deployment issue (#21)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@aritra1999 aritra1999 merged commit a0a9c93 into main Feb 11, 2026
2 of 3 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Feb 13, 2026
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.

1 participant