chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,246 @@
|
||||
name: "Reusable Deploy Docs"
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
CONCURRENCY:
|
||||
required: true
|
||||
type: string
|
||||
JS_DOCS_VERSION_NAME:
|
||||
required: true
|
||||
type: string
|
||||
PY_DOCS_VERSION_NAME:
|
||||
required: true
|
||||
type: string
|
||||
CPP_DOCS_VERSION_NAME:
|
||||
required: true
|
||||
type: string
|
||||
MARKDOWN_DOCS_VERSION_NAME:
|
||||
required: true
|
||||
type: string
|
||||
description: |
|
||||
Version label to upload markdown docs/examples under on GCS
|
||||
(`gs://rerun-docs/prose/{label}/`). Use `dev` for non-final
|
||||
releases / pushes to main, the semver string for final
|
||||
releases, or `pr-{N}` for PR previews.
|
||||
RELEASE_VERSION:
|
||||
required: false
|
||||
type: string
|
||||
RELEASE_COMMIT:
|
||||
required: false
|
||||
type: string
|
||||
UPDATE_LATEST:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
concurrency:
|
||||
group: ${{ inputs.CONCURRENCY }}-deploy-docs
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash --noprofile --norc -euo pipefail {0}
|
||||
|
||||
permissions:
|
||||
contents: "write"
|
||||
id-token: "write"
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: "3.10"
|
||||
|
||||
RUSTFLAGS: --deny warnings
|
||||
RUSTDOCFLAGS: --deny warnings
|
||||
|
||||
jobs:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
py-deploy-docs:
|
||||
name: Python
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.RELEASE_COMMIT || (github.event_name == 'pull_request' && github.event.pull_request.head.ref || '') }}
|
||||
|
||||
- uses: prefix-dev/setup-pixi@v0.10.0
|
||||
with:
|
||||
pixi-version: v0.71.3
|
||||
|
||||
- id: "auth"
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
|
||||
|
||||
- name: "Set up Cloud SDK"
|
||||
uses: "google-github-actions/setup-gcloud@v2"
|
||||
with:
|
||||
version: ">= 363.0.0"
|
||||
|
||||
- name: Build docs
|
||||
run: pixi run uv run --group docs mkdocs build -f rerun_py/mkdocs.yml -d site
|
||||
|
||||
- name: "Upload Python Docs (version)"
|
||||
uses: google-github-actions/upload-cloud-storage@v3
|
||||
with:
|
||||
path: "rerun_py/site"
|
||||
destination: "rerun-docs/docs/python/${{ inputs.PY_DOCS_VERSION_NAME }}"
|
||||
process_gcloudignore: false
|
||||
parent: false
|
||||
resumable: false
|
||||
|
||||
- name: "Update URL rewrite rules for stable"
|
||||
if: ${{ inputs.UPDATE_LATEST }}
|
||||
run: |
|
||||
pixi run uv run --group dev scripts/update_docs_url_rewrite.py --version ${{ inputs.PY_DOCS_VERSION_NAME }} --language python
|
||||
|
||||
- name: "Update versions.json"
|
||||
if: ${{ inputs.UPDATE_LATEST }}
|
||||
run: |
|
||||
VERSION=${{ inputs.PY_DOCS_VERSION_NAME }}
|
||||
|
||||
echo "download existing"
|
||||
gsutil cp gs://rerun-docs/docs/python/versions.json ./
|
||||
cat versions.json
|
||||
|
||||
echo "remove `stable` alias"
|
||||
jq -c 'map(.aliases |= map(select(. != "stable")))' versions.json > versions.json.new
|
||||
cat versions.json.new
|
||||
|
||||
echo "prepend new version with `stable` alias"
|
||||
jq -c --arg v "$VERSION" '[{ version: $v, title: $v, aliases: ["stable"] }] + .' versions.json.new > versions.json
|
||||
cat versions.json
|
||||
|
||||
echo "overwrite the file on gcs"
|
||||
gsutil cp ./versions.json gs://rerun-docs/docs/python/
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
cpp-deploy-docs:
|
||||
name: Cpp
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Show context
|
||||
run: |
|
||||
echo "GITHUB_CONTEXT": $GITHUB_CONTEXT
|
||||
echo "JOB_CONTEXT": $JOB_CONTEXT
|
||||
echo "INPUTS_CONTEXT": $INPUTS_CONTEXT
|
||||
echo "ENV_CONTEXT": $ENV_CONTEXT
|
||||
env:
|
||||
ENV_CONTEXT: ${{ toJson(env) }}
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
JOB_CONTEXT: ${{ toJson(job) }}
|
||||
INPUTS_CONTEXT: ${{ toJson(inputs) }}
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.RELEASE_COMMIT || (github.event_name == 'pull_request' && github.event.pull_request.head.ref || '') }}
|
||||
|
||||
- id: "auth"
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
|
||||
|
||||
- uses: prefix-dev/setup-pixi@v0.10.0
|
||||
with:
|
||||
pixi-version: v0.71.3
|
||||
|
||||
- name: Doxygen C++ docs
|
||||
run: pixi run -e cpp cpp-docs
|
||||
|
||||
- name: "Upload C++ Docs (version)"
|
||||
uses: google-github-actions/upload-cloud-storage@v3
|
||||
with:
|
||||
path: "rerun_cpp/docs/html"
|
||||
destination: "rerun-docs/docs/cpp/${{ inputs.RELEASE_VERSION }}"
|
||||
process_gcloudignore: false
|
||||
parent: false
|
||||
resumable: false
|
||||
|
||||
- name: "Upload C++ Docs (named)"
|
||||
if: ${{ inputs.UPDATE_LATEST }}
|
||||
uses: google-github-actions/upload-cloud-storage@v3
|
||||
with:
|
||||
path: "rerun_cpp/docs/html"
|
||||
destination: "rerun-docs/docs/cpp/${{ inputs.CPP_DOCS_VERSION_NAME }}"
|
||||
process_gcloudignore: false
|
||||
parent: false
|
||||
resumable: false
|
||||
|
||||
js-deploy-docs:
|
||||
name: JS
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.RELEASE_COMMIT || (github.event_name == 'pull_request' && github.event.pull_request.head.ref || '') }}
|
||||
|
||||
- uses: prefix-dev/setup-pixi@v0.10.0
|
||||
with:
|
||||
pixi-version: v0.71.3
|
||||
|
||||
- id: "auth"
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
|
||||
|
||||
- name: "Set up Cloud SDK"
|
||||
uses: "google-github-actions/setup-gcloud@v2"
|
||||
with:
|
||||
version: ">= 363.0.0"
|
||||
|
||||
- name: Build docs
|
||||
run: pixi run js-docs
|
||||
|
||||
- name: "Upload (version)"
|
||||
uses: google-github-actions/upload-cloud-storage@v3
|
||||
with:
|
||||
path: "rerun_js/docs"
|
||||
destination: "rerun-docs/docs/js/${{ inputs.JS_DOCS_VERSION_NAME }}"
|
||||
process_gcloudignore: false
|
||||
parent: false
|
||||
resumable: false
|
||||
|
||||
- name: "Update URL rewrite rules for stable"
|
||||
if: ${{ inputs.UPDATE_LATEST }}
|
||||
run: |
|
||||
pixi run uv run --group dev scripts/update_docs_url_rewrite.py --version ${{ inputs.JS_DOCS_VERSION_NAME }} --language js
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
md-deploy-docs:
|
||||
name: Markdown
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.RELEASE_COMMIT || (github.event_name == 'pull_request' && github.event.pull_request.head.ref || '') }}
|
||||
|
||||
- uses: prefix-dev/setup-pixi@v0.10.0
|
||||
with:
|
||||
pixi-version: v0.71.3
|
||||
|
||||
- id: "auth"
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
|
||||
service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
|
||||
|
||||
- name: "Upload markdown docs & examples to GCS"
|
||||
env:
|
||||
ISR_BYPASS_TOKEN: ${{ secrets.ISR_BYPASS_TOKEN }}
|
||||
VERSION_LABEL: ${{ inputs.MARKDOWN_DOCS_VERSION_NAME }}
|
||||
MARK_LATEST: ${{ inputs.UPDATE_LATEST }}
|
||||
RERUN_COMMIT: ${{ inputs.RELEASE_COMMIT }}
|
||||
run: |
|
||||
ARGS=(upload --version "$VERSION_LABEL" --purge-token "$ISR_BYPASS_TOKEN")
|
||||
if [ "$MARK_LATEST" = "true" ]; then
|
||||
ARGS+=(--mark-latest)
|
||||
fi
|
||||
if [ -n "$RERUN_COMMIT" ]; then
|
||||
ARGS+=(--rerun-commit "$RERUN_COMMIT")
|
||||
fi
|
||||
pixi run uv run scripts/ci/upload_docs.py "${ARGS[@]}"
|
||||
Reference in New Issue
Block a user