Skip to content

Full site build pipeline in GitHub Actions, replacing a-frobot#11

Open
vincentfretin wants to merge 4 commits intoaframevr:masterfrom
vincentfretin:docs-ci
Open

Full site build pipeline in GitHub Actions, replacing a-frobot#11
vincentfretin wants to merge 4 commits intoaframevr:masterfrom
vincentfretin:docs-ci

Conversation

@vincentfretin
Copy link
Copy Markdown
Contributor

@vincentfretin vincentfretin commented Apr 12, 2026

Configuration required (for repo owner)

  1. Create a fine-grained Personal Access Token (PAT)

    • Go to https://github.com/settings/tokens?type=beta
    • Create a token scoped to the aframevr/aframevr.github.io repository
    • Grant "Actions: Read and write" permission (under Repository permissions)
    • This is the minimum permission needed to trigger repository_dispatch
  2. Add the PAT as a secret in aframevr/aframe-site

  3. Add the same PAT as a secret in aframevr/aframe

  4. Merge the companion PRs

  5. Verify GitHub Pages is configured in aframevr/aframevr.github.io

    • Go to Settings > Pages
    • Source should be set to "GitHub Actions" (not "Deploy from a branch")

You can skip reading from here.

Current flow (a-frobot on AWS)

  1. A push to aframevr/aframe-site or aframevr/aframe master triggers a webhook
  2. The webhook hits a-frobot, a Node.js bot running on an AWS EC2 instance (supermedium/a-frobot)
  3. a-frobot pulls the latest aframe-site, runs npm run bumpdocs and npm run generate
    • bumpdocs clears the npm cache for the latest versioned docs branch (docs-v1.7.0),
      removes the local multidep copy, reinstalls aframe from master, then runs installdocs
    • installdocs runs multidep multidep.json to download all versioned docs (0.1.0 to 1.7.0)
      from their respective docs-v* branches, then copies them into src/docs/
    • generate runs hexo clean + hexo generate to produce the static site in public/
  4. a-frobot copies public/* into the local aframevr.github.io clone, commits, and pushes to master
  5. That push triggers the deploy-pages.yml GitHub Actions workflow in aframevr.github.io
    which runs Pagefind on the static files and deploys to GitHub Pages

New flow (GitHub Actions only, no AWS)

  1. A push to aframevr/aframe-site master or aframevr/aframe master (docs/ path only)
    triggers a trigger-deploy.yml workflow in that repo
  2. That workflow sends a repository_dispatch event (type: deploy) to aframevr/aframevr.github.io
  3. The deploy-pages.yml workflow in aframevr.github.io runs the full build:
    • Checks out aframevr/aframe-site
    • Installs dependencies
    • Runs npm run bumpdocs (fetches fresh docs from aframe master + all versioned branches)
    • Runs npm run generate (hexo build)
    • Runs Pagefind to generate the search index
    • Deploys to GitHub Pages via actions/deploy-pages

This eliminates the AWS EC2 instance and the a-frobot bot entirely for site deployment.

Changes in this PR

  • Updated deploy-pages.yml to include the full build pipeline:
    • Added repository_dispatch trigger (type: deploy) and workflow_dispatch for manual triggers from the GitHub Actions UI
    • Checks out aframevr/aframe-site instead of the current repo
    • Installs Node.js dependencies
    • Runs npm run bumpdocs to fetch fresh docs from all aframe branches
    • Runs npm run generate to build the static site with hexo
    • Runs Pagefind on the generated aframe-site/public directory
    • Deploys aframe-site/public to GitHub Pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
vincentfretin and others added 3 commits April 12, 2026 11:05
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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