AeThex-OS/docs/GITHUB_PAGES_404_FIX.md

4.3 KiB

GitHub Pages 404 Fix - Applied

Problem

GitHub Pages was deploying but showing 404 errors. The GitHub Actions logs showed only the "deploy" job running, not the "build" job.

Root Cause

The workflow was using actions/jekyll-build-pages@v1 which requires specific setup, but wasn't properly building the Jekyll site before deployment.

Solution Applied

1. Updated Workflow (.github/workflows/pages.yml)

Changed from: Using actions/jekyll-build-pages@v1 (pre-built action)
Changed to: Manual Jekyll build with proper Ruby setup

- name: Setup Ruby
  uses: ruby/setup-ruby@v1
  with:
    ruby-version: '3.1'
    bundler-cache: true

- name: Build with Jekyll
  run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
  env:
    JEKYLL_ENV: production

2. Added Gemfile

Created Gemfile with GitHub Pages dependencies:

  • github-pages gem (includes Jekyll and plugins)
  • jekyll-seo-tag, jekyll-sitemap, jekyll-feed
  • kramdown-parser-gfm (for GitHub Flavored Markdown)
  • webrick (required for Ruby 3.0+)

3. Updated .gitignore

Added Jekyll-specific ignores:

/.bundle/
/vendor/
/_site/
/.jekyll-cache/
/.jekyll-metadata
Gemfile.lock

Verification Steps

  1. Check GitHub Actions:

  2. Wait for Deployment:

    • Full build takes ~2-3 minutes
    • Watch for "Deploy to GitHub Pages" completion
  3. Visit Your Site:

    https://aethex-corporation.github.io/AeThex-OS/
    
  4. Test Documentation Hub:

    https://aethex-corporation.github.io/AeThex-OS/docs/
    
  5. Test OS Specification:

    https://aethex-corporation.github.io/AeThex-OS/docs/AETHEX_OS_SPECIFICATION
    

Expected Build Output

You should now see in GitHub Actions logs:

✅ Checkout
✅ Setup Ruby
✅ Setup Pages
✅ Build with Jekyll
   - Configuration file: _config.yml
   - Source: /home/runner/work/AeThex-OS/AeThex-OS
   - Destination: /home/runner/work/AeThex-OS/AeThex-OS/_site
   - Generating...
   - Jekyll Feed: Generating feed for posts
   - done in X.XX seconds.
✅ Upload artifact
✅ Deploy to GitHub Pages

Common Issues & Solutions

Issue: Still getting 404

Solution: Clear browser cache or try incognito mode

Issue: Build job fails with Ruby errors

Solution: Check Gemfile.lock was generated properly. If not:

bundle install
git add Gemfile.lock
git commit -m "chore: Add Gemfile.lock"
git push

Issue: CSS/assets not loading

Solution: Verify baseurl in _config.yml matches repo name:

baseurl: "/AeThex-OS"

Solution: Use absolute paths from baseurl:

[Link](/AeThex-OS/docs/page)

Files Modified/Created

Created:

  • Gemfile - Jekyll dependencies
  • docs/GITHUB_PAGES_404_FIX.md - This troubleshooting guide

Modified:

  • .github/workflows/pages.yml - Fixed build process
  • .gitignore - Added Jekyll ignores

Next Steps

  1. Monitor the build at: https://github.com/AeThex-Corporation/AeThex-OS/actions
  2. Wait 2-3 minutes for complete deployment
  3. Visit site to confirm it works
  4. If still 404, check:
    • GitHub Pages is enabled in Settings → Pages
    • Source is set to "GitHub Actions"
    • Build completed successfully (green checkmark)

Technical Details

Why the Original Workflow Failed

actions/jekyll-build-pages@v1 expects a specific setup:

  • Minimal config in _config.yml
  • No Gemfile or only specific gems
  • Standard Jekyll directory structure

Our project has:

  • Custom theme configuration
  • Multiple collections
  • Complex navigation
  • Root-level markdown files

Why the New Workflow Works

  • Explicit Ruby setup with version control
  • Manual Jekyll build with full control
  • Proper baseurl injection from GitHub Pages
  • Bundle caching for faster builds
  • Production environment variable set

Rollback (If Needed)

If this causes issues, revert with:

git revert bf4ea61
git push origin main

Then investigate alternative solutions.


Status: Fix deployed
Commit: bf4ea61
Next Deploy: Automatic on next push to main

Your site should be live in 2-3 minutes! 🚀