cddb07a176
build container image / cpu (push) Waiting to run
build container image / cuda (push) Waiting to run
build container image / rocm (push) Waiting to run
frontend tests / frontend-tests (push) Waiting to run
openapi checks / openapi-checks (push) Waiting to run
python tests / py3.12: macos-default (push) Waiting to run
python tests / py3.11: windows-cpu (push) Waiting to run
python tests / py3.12: windows-cpu (push) Waiting to run
python tests / py3.11: linux-cpu (push) Waiting to run
python tests / py3.12: linux-cpu (push) Waiting to run
typegen checks / typegen-checks (push) Waiting to run
uv lock checks / uv-lock-checks (push) Waiting to run
frontend checks / frontend-checks (push) Waiting to run
lfs checks / lfs-check (push) Waiting to run
python checks / python-checks (push) Waiting to run
python tests / py3.11: macos-default (push) Waiting to run
docs / deploy (push) Has been cancelled
docs / changes (push) Has been cancelled
docs / check-and-build (push) Has been cancelled
150 lines
4.1 KiB
YAML
150 lines
4.1 KiB
YAML
name: 'docs'
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
pull_request:
|
|
types:
|
|
- 'ready_for_review'
|
|
- 'opened'
|
|
- 'synchronize'
|
|
workflow_dispatch:
|
|
inputs:
|
|
deploy_target:
|
|
description: 'Deploy target (custom = invoke.ai, ghpages = invoke-ai.github.io/InvokeAI)'
|
|
type: choice
|
|
options:
|
|
- custom
|
|
- ghpages
|
|
default: custom
|
|
|
|
permissions:
|
|
contents: read
|
|
pull-requests: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
changes:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
docs: ${{ steps.manual.outputs.docs || steps.filter.outputs.docs }}
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: mark manual run
|
|
if: github.event_name == 'workflow_dispatch'
|
|
id: manual
|
|
run: echo "docs=true" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: detect docs-related changes
|
|
if: github.event_name != 'workflow_dispatch'
|
|
id: filter
|
|
uses: dorny/paths-filter@v3
|
|
with:
|
|
filters: |
|
|
docs:
|
|
- '.github/workflows/deploy-docs.yml'
|
|
- 'docs/**'
|
|
- 'scripts/generate_docs_json.py'
|
|
- 'invokeai/app/**'
|
|
- 'invokeai/backend/**'
|
|
- 'pyproject.toml'
|
|
- 'uv.lock'
|
|
|
|
check-and-build:
|
|
needs: changes
|
|
if: |
|
|
github.event_name == 'workflow_dispatch' ||
|
|
(github.event_name == 'pull_request' &&
|
|
github.event.pull_request.draft == false &&
|
|
needs.changes.outputs.docs == 'true') ||
|
|
(github.event_name == 'push' && needs.changes.outputs.docs == 'true')
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
# Python (needed for generate-docs-data)
|
|
- name: setup uv
|
|
uses: astral-sh/setup-uv@v8.1.0
|
|
with:
|
|
version: '0.11.12'
|
|
enable-cache: true
|
|
python-version: '3.11'
|
|
|
|
- name: setup python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
# generate_docs_json.py only needs the invokeai package importable
|
|
# (pydantic + invokeai.app/backend). Skip the [test] extra to keep CI fast.
|
|
- name: install python dependencies
|
|
run: uv sync --frozen
|
|
|
|
# Node (needed for docs build)
|
|
- name: setup node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22'
|
|
|
|
- name: setup pnpm
|
|
uses: pnpm/action-setup@v6
|
|
with:
|
|
version: 10
|
|
run_install: false
|
|
|
|
- name: install docs dependencies
|
|
run: pnpm install --prefer-frozen-lockfile
|
|
working-directory: docs
|
|
|
|
# Checks
|
|
- name: verify generated docs data
|
|
run: pnpm run check-docs-data
|
|
working-directory: docs
|
|
|
|
- name: build docs
|
|
run: pnpm build
|
|
working-directory: docs
|
|
env:
|
|
DEPLOY_TARGET: ${{ github.event_name == 'workflow_dispatch' && inputs.deploy_target || 'custom' }}
|
|
ENABLE_ANALYTICS: ${{ github.ref == 'refs/heads/main' && (github.event_name != 'workflow_dispatch' || inputs.deploy_target == 'custom') }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: verify deploy output
|
|
run: pnpm run check-deploy-output
|
|
working-directory: docs
|
|
env:
|
|
DEPLOY_TARGET: ${{ github.event_name == 'workflow_dispatch' && inputs.deploy_target || 'custom' }}
|
|
|
|
# Upload artifact for deploy (main branch only)
|
|
- name: upload pages artifact
|
|
if: github.ref == 'refs/heads/main'
|
|
uses: actions/upload-pages-artifact@v5
|
|
with:
|
|
path: docs/dist
|
|
|
|
deploy:
|
|
if: github.ref == 'refs/heads/main'
|
|
needs: check-and-build
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
pages: write
|
|
id-token: write
|
|
environment:
|
|
name: github-pages
|
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
steps:
|
|
- name: deploy to GitHub Pages
|
|
id: deployment
|
|
uses: actions/deploy-pages@v5
|