Files
2025-12-06 11:10:31 -08:00
..
2025-12-06 11:10:31 -08:00
2025-12-06 11:10:31 -08:00

GitHub Actions Workflows

deploy.yml - Automated GitHub Pages Deployment

This workflow automatically builds and deploys the project to GitHub Pages whenever changes are pushed to the main or master branch.

What it does:

  1. Build Stage:

    • Checks out the repository
    • Sets up Node.js (v20) with npm cache enabled
    • Installs dependencies with npm ci
    • Runs test suite with npm run test:all
    • Runs npm run build which:
      • Copies static files to dist/ (copy-static.js)
      • Builds transformer index (build-index.js)
      • Bundles all transformers to dist/js/bundles/ (build-transforms.js)
      • Generates emoji data to dist/js/data/ (build-emoji-data.js)
      • Injects tool scripts (inject-tool-scripts.js)
      • Injects tool templates into dist/index.html (inject-tool-templates.js)
    • Verifies critical build files exist in dist/
    • Uploads only the dist/ folder as a Pages artifact (7-day retention)
  2. Deploy Stage:

    • Deploys the dist/ artifact to GitHub Pages
    • Makes the site available at your GitHub Pages URL

Manual Deployment

You can also trigger a deployment manually from the GitHub Actions tab by selecting "Build and Deploy to GitHub Pages" and clicking "Run workflow".

Required GitHub Settings

For this workflow to function, ensure GitHub Pages is configured in your repository settings:

  1. Go to SettingsPages
  2. Under Build and deployment:
    • Source: GitHub Actions
  3. Save the settings

The site will be available at: https://<username>.github.io/<repository-name>/

Troubleshooting

  • Build fails: Check the Actions tab for error logs
  • Tests fail: Run npm run test:all locally to debug issues
  • Missing templates: Ensure all templates exist in templates/ directory
  • Test locally first: Run npm run build before pushing to catch errors early
  • Verify build output: Check that dist/index.html and other files exist in dist/ folder after build
  • Build timeout: Build has a 10-minute timeout; if it exceeds this, check for infinite loops or large file processing

Workflow Triggers

  • Push: Automatically runs on push to main or master
  • Workflow Dispatch: Can be manually triggered from the Actions tab