Files
2026-07-13 12:38:34 +08:00

62 lines
1.9 KiB
YAML

name: Docs - Sync Algolia Search
on:
push:
branches:
- next
paths:
- 'docs/**'
- '.github/actions/setup-node-pnpm-bun/action.yml'
- '.github/workflows/docs-search-sync.yml'
- 'mise.toml'
- 'mise.lock'
workflow_dispatch:
permissions:
contents: read
jobs:
sync-search:
runs-on: ubuntu-latest
# The Algolia admin key is stored as an environment secret, not a repo
# secret. Declaring the environment is what exposes `secrets.*` (and any
# env-scoped `vars.*`) to this job — without it the key resolves empty and
# the sync silently skips.
environment: Production
defaults:
run:
working-directory: ./docs
env:
ALGOLIA_APP_ID: ${{ vars.ALGOLIA_APP_ID || '62HI9PQZ1L' }}
ALGOLIA_ADMIN_API_KEY: ${{ secrets.ALGOLIA_ADMIN_API_KEY }}
ALGOLIA_INDEX_NAME: ${{ vars.ALGOLIA_INDEX_NAME || 'docs_composio' }}
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Node.js, pnpm, Bun
uses: ./.github/actions/setup-node-pnpm-bun
- name: Cache bun dependencies
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('docs/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install
- name: Validate search index generation
run: bun run sync:search --dry-run
- name: Sync Algolia search index
if: env.ALGOLIA_APP_ID != '' && env.ALGOLIA_ADMIN_API_KEY != ''
run: bun run sync:search
- name: Skip sync without Algolia secrets
if: env.ALGOLIA_APP_ID == '' || env.ALGOLIA_ADMIN_API_KEY == ''
run: echo "Skipping Algolia sync because ALGOLIA_APP_ID or ALGOLIA_ADMIN_API_KEY is not configured."