Skip to content

Publish Fullbleed support page with pending sponsorship status #51

Publish Fullbleed support page with pending sponsorship status

Publish Fullbleed support page with pending sponsorship status #51

Workflow file for this run

name: Documentation
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: docs-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: '3.12'
cache: pip
- uses: actions/setup-node@v6
with:
node-version: '22'
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.97.0'
targets: wasm32-wasip1
components: rustfmt
- run: python -m pip install -r requirements.txt
- run: python tools/build_playground.py
- run: node tools/verify_playground.mjs
- uses: actions/upload-artifact@v4
if: always()
with:
name: playground-native-evidence
path: |
playground/verification/*.json
playground/verification/*.html
playground/verification/*.css
playground/verification/**/*.pdf
playground/verification/**/*.png
retention-days: 7
- name: Verify downloadable playground projects
run: |
python -m pip install fullbleed==2.5.5
node tools/verify_project_export.mjs
python -I tools/verify_project_export.py
- uses: actions/upload-artifact@v4
if: always()
with:
name: playground-project-verification
path: playground/project-verification
retention-days: 7
- name: Compile and render the Rust quickstart examples
run: python tools/verify_rust_examples.py
- name: Verify the downloadable PDF regression starter
run: |
python -m venv output/pdf-regression-env
output/pdf-regression-env/bin/python -m pip install --only-binary=:all: fullbleed==2.5.3
python tools/check_ci_starter.py --python "$PWD/output/pdf-regression-env/bin/python"
- uses: actions/upload-artifact@v4
if: always()
with:
name: pdf-regression-download-verification
path: output/pdf-regression-verification
retention-days: 7
- name: Verify the introductory Python examples
run: |
python -m venv output/reference-env
output/reference-env/bin/python -m pip install --only-binary=:all: fullbleed==2.5.5
output/reference-env/bin/python -I tools/verify_quickstarts.py
- name: Verify the downloadable Node invoice and guide
run: python tools/verify_node_examples.py
- uses: actions/upload-artifact@v4
if: always()
with:
name: node-guide-verification
path: |
output/node-verification/*.json
output/node-verification/*.txt
output/node-verification/**/*.pdf
output/node-verification/**/*.png
retention-days: 7
- uses: actions/upload-artifact@v4
if: always()
with:
name: quickstart-verification
path: output/quickstart-verification
retention-days: 7
- uses: actions/upload-artifact@v4
with:
name: rust-quickstart-verification
path: examples/rust/verification
- uses: actions/upload-artifact@v4
with:
name: playground-verification
path: |
docs/assets/playground/build.json
docs/assets/playground/verification.json
- run: python -m mkdocs build --strict
- run: python tools/check_site.py site
- name: Include search notification ownership file
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
env:
INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY }}
run: |
python - <<'PY'
import os
import re
from pathlib import Path
key = os.environ.get("INDEXNOW_KEY", "")
if key:
if not re.fullmatch(r"[A-Za-z0-9-]{8,128}", key):
raise SystemExit("Invalid IndexNow ownership key format")
Path("site", key + ".txt").write_text(key, encoding="utf-8")
PY
- uses: actions/upload-pages-artifact@v4
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
with:
path: site
deploy:
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/deploy-pages@v4
id: deployment