serverless/.github/workflows/sync-docs.yml
2024-06-26 18:38:42 +03:00

88 lines
2.8 KiB
YAML

# This workflow is responsible for syncing the docs menu and content to Dev and Prod stages with Algolia and ChatGPT
name: Sync Docs
on:
push:
branches: [main]
paths:
- 'docs/**'
pull_request:
paths:
- 'docs/**'
workflow_dispatch:
# This workflow contains three jobs
jobs:
# Publish docs menu
docs-menu:
name: Publish the docs menu
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch' }}
timeout-minutes: 3 # Default is 360
env:
AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_ASSETS_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_ASSETS_AWS_SECRET_ACCESS_KEY }}
steps:
- uses: actions/checkout@v3
# Upload menu.json with a cache of 60 seconds (instead of the default 24h on the CloudFront distribution)
- run: 'aws s3 cp docs/menu.json s3://assets.public.serverless/website/framework/docs/menu.json --cache-control max-age=60 --region us-east-2'
# Sync docs in Prod
sync-docs-prod:
name: Sync Docs (Prod)
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run sync script
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY_PROD }}
ALGOLIA_DOCS_INDEX: ${{ secrets.ALGOLIA_DOCS_INDEX_PROD }}
run: node scripts/sync-docs.js
# Sync docs in Dev (push to docs-dev branch)
sync-docs-dev:
name: Sync Docs (Dev)
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Git
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
- name: Push changes to docs-dev
run: |
git checkout -b docs-dev
git push origin docs-dev --force
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run sync script for dev
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY_DEV }}
ALGOLIA_DOCS_INDEX: ${{ secrets.ALGOLIA_DOCS_INDEX_DEV }}
run: node scripts/sync-docs.js