mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
154 lines
5.6 KiB
YAML
154 lines
5.6 KiB
YAML
name: Product site
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'README*.md'
|
|
- 'docs/**/*.md'
|
|
- 'docs/conf.py'
|
|
- 'docs/index.rst'
|
|
- 'docs/_ext/**'
|
|
- 'tests/test_sphinx_links.py'
|
|
- 'tests/test_vllm_examples_contract.py'
|
|
- 'tests/test_readme_task_entrypoints.py'
|
|
- 'model_zoo/**/*.md'
|
|
- 'runtime/**/*.md'
|
|
- 'examples/openai_api/**/*.md'
|
|
- 'scripts/gen_api_docs.py'
|
|
- 'scripts/sync_vllm_guide.py'
|
|
- 'tests/test_*docs*.py'
|
|
- 'tests/test_api_signatures.py'
|
|
- 'gh-pages-output/**'
|
|
- 'web-pages/product-site/**'
|
|
- 'web-pages/scripts/**'
|
|
- 'web-pages/nginx/**'
|
|
- '.github/workflows/product-site.yml'
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'README*.md'
|
|
- 'docs/**/*.md'
|
|
- 'docs/conf.py'
|
|
- 'docs/index.rst'
|
|
- 'docs/_ext/**'
|
|
- 'tests/test_sphinx_links.py'
|
|
- 'tests/test_vllm_examples_contract.py'
|
|
- 'tests/test_readme_task_entrypoints.py'
|
|
- 'model_zoo/**/*.md'
|
|
- 'runtime/**/*.md'
|
|
- 'examples/openai_api/**/*.md'
|
|
- 'scripts/gen_api_docs.py'
|
|
- 'scripts/sync_vllm_guide.py'
|
|
- 'tests/test_*docs*.py'
|
|
- 'tests/test_api_signatures.py'
|
|
- 'gh-pages-output/**'
|
|
- 'web-pages/product-site/**'
|
|
- 'web-pages/scripts/**'
|
|
- 'web-pages/nginx/**'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
legacy-docs-links:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
- name: Install documentation dependencies
|
|
run: >-
|
|
python -m pip install -r web-pages/product-site/requirements-site.txt
|
|
Sphinx==9.1.0 docutils==0.22.4 recommonmark==0.7.1
|
|
nbsphinx==0.9.8 sphinx-rtd-theme==3.1.0 sphinx-markdown-tables==0.0.17
|
|
- name: Check legacy document links without skips
|
|
run: |
|
|
python -m pytest tests/test_sphinx_links.py -q --junitxml=/tmp/sphinx-links.xml
|
|
python - <<'PY'
|
|
import xml.etree.ElementTree as ET
|
|
report = ET.parse('/tmp/sphinx-links.xml').getroot()
|
|
assert list(report.iter('testcase')), 'No Sphinx link tests ran'
|
|
assert not list(report.iter('skipped')), 'Sphinx link tests must not be skipped'
|
|
PY
|
|
|
|
build-and-validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
cache: pip
|
|
cache-dependency-path: web-pages/product-site/requirements-site.txt
|
|
- name: Install site dependencies
|
|
run: python -m pip install -r web-pages/product-site/requirements-site.txt
|
|
- name: Run product-site tests
|
|
run: python -m pytest web-pages/product-site/tests -q
|
|
- name: Check generated vLLM compatibility guide
|
|
run: python scripts/sync_vllm_guide.py --check
|
|
- name: Run model-free documentation contracts
|
|
run: >-
|
|
python -m pytest
|
|
tests/test_readme_task_entrypoints.py
|
|
tests/test_learning_docs_contract.py
|
|
tests/test_reference_docs_contract.py
|
|
tests/test_vllm_examples_contract.py
|
|
tests/test_vllm_guide_sync_docs.py
|
|
tests/test_vllm_model_source_docs.py
|
|
tests/test_training_docs_contract.py
|
|
tests/test_python_api_docs_contract.py
|
|
tests/test_streaming_vad_docs.py
|
|
tests/test_kws_docs.py
|
|
tests/test_speaker_emotion_docs.py
|
|
tests/test_service_docs_contract.py
|
|
tests/test_generated_api_docs.py
|
|
tests/test_api_signatures.py
|
|
tests/test_docs_funasr_install_commands.py
|
|
tests/test_moss_transcribe_diarize_docs.py
|
|
-k 'not no_download_toy_against_checkout and not browser_navigation_and_responsive_overflow and not skip_link_preserves_selection_playwright' -q
|
|
- name: Build and validate twice
|
|
run: |
|
|
python web-pages/product-site/build.py --output /tmp/funasr-site-a
|
|
python web-pages/product-site/validate.py /tmp/funasr-site-a
|
|
python web-pages/product-site/build.py --output /tmp/funasr-site-b
|
|
python web-pages/product-site/validate.py /tmp/funasr-site-b
|
|
diff -qr /tmp/funasr-site-a /tmp/funasr-site-b
|
|
|
|
browser:
|
|
runs-on: ubuntu-latest
|
|
needs: build-and-validate
|
|
defaults:
|
|
run:
|
|
working-directory: web-pages/product-site/tests/browser
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
cache: pip
|
|
cache-dependency-path: web-pages/product-site/requirements-site.txt
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
cache: npm
|
|
cache-dependency-path: web-pages/product-site/tests/browser/package-lock.json
|
|
- name: Install site dependencies
|
|
working-directory: .
|
|
run: python -m pip install -r web-pages/product-site/requirements-site.txt
|
|
- name: Install browser dependencies
|
|
run: npm ci
|
|
- name: Install Chromium
|
|
run: npx playwright install --with-deps chromium
|
|
- name: Install API browser test driver
|
|
run: python -m pip install playwright==1.55.0
|
|
- name: Check generated API interactions
|
|
working-directory: .
|
|
run: >-
|
|
python -m pytest tests/test_generated_api_docs.py
|
|
-k 'browser_navigation_and_responsive_overflow or skip_link_preserves_selection_playwright' -q
|
|
- name: Run browser tests
|
|
env:
|
|
SITE_PYTHON: python
|
|
run: npx playwright test --config playwright.config.ts
|