holon 0.14.1

A headless, event-driven runtime for long-lived agents
Documentation
name: Docs Site

on:
  push:
    branches: [main]
    paths:
      - 'docs/website/**'
      - '.github/workflows/docs-site.yml'
  workflow_dispatch:

env:
  NODE_VERSION: 22

permissions:
  contents: read

jobs:
  build-and-deploy:
    name: Build and Deploy Docs Site
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: docs/website

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: "npm"
          cache-dependency-path: docs/website/.tools/package-lock.json

      - name: Install dependencies
        run: npm ci --prefix .tools

      - name: Build directory indexes
        run: npm --prefix .tools run build:index

      - name: Build search index
        run: npm --prefix .tools run build:search

      - name: Build Cloudflare bundle
        run: npm --prefix .tools run build:cloudflare

      - name: Upload docs artifact
        uses: actions/upload-artifact@v4
        with:
          name: docs-site-cloudflare
          path: docs/website/dist/cloudflare

      - name: Deploy to Cloudflare Workers
        env:
          CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
        run: npm --prefix .tools run deploy