name: Docs Testing on: pull_request: paths: - "docs/**" - "superset/db_engine_specs/**" - ".github/workflows/superset-docs-verify.yml" types: [synchronize, opened, reopened, ready_for_review] workflow_run: workflows: ["Python-Integration"] types: [completed] # cancel previous workflow jobs for PRs concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.workflow_run.head_sha || github.run_id }} cancel-in-progress: true jobs: linkinator: # See docs here: https://github.com/marketplace/actions/linkinator # Only run on pull_request, not workflow_run if: github.event_name == 'pull_request' name: Link Checking runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 # Do not bump this linkinator-action version without opening # an ASF Infra ticket to allow the new version first! - uses: JustinBeckwith/linkinator-action@af984b9f30f63e796ae2ea5be5e07cb587f1bbd9 # v2.3 continue-on-error: true # This will make the job advisory (non-blocking, no red X) with: paths: "**/*.md, **/*.mdx" linksToSkip: >- ^https://github.com/apache/(superset|incubator-superset)/(pull|issues)/\d+, ^https://github.com/apache/(superset|incubator-superset)/commit/[a-f0-9]+, superset-frontend/.*CHANGELOG\.md, http://localhost:8088/, http://127.0.0.1:3000/, http://localhost:9001/, https://charts.bitnami.com/bitnami, https://www.li.me/, https://www.fanatics.com/, https://tails.com/gb/, https://www.techaudit.info/, https://avetilearning.com/, https://www.udemy.com/, https://trustmedis.com/, http://theiconic.com.au/, https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html, ^https://img\.shields\.io/.*, https://vkusvill.ru/, https://www.linkedin.com/in/mark-thomas-b16751158/, https://theiconic.com.au/, https://wattbewerb.de/, https://timbr.ai/, https://opensource.org/license/apache-2-0, https://www.plaidcloud.com/ build-on-pr: # Build docs when PR changes docs/** (uses committed databases.json) if: github.event_name == 'pull_request' name: Build (PR trigger) runs-on: ubuntu-24.04 defaults: run: working-directory: docs steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false submodules: recursive - name: Set up Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: node-version-file: './docs/.nvmrc' - name: yarn install run: | yarn install --check-cache - name: yarn typecheck run: | yarn typecheck - name: yarn build run: | yarn build build-after-tests: # Build docs after integration tests complete (uses fresh diagnostics) # Only runs if integration tests succeeded if: > github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' name: Build (after integration tests) runs-on: ubuntu-24.04 defaults: run: working-directory: docs steps: - name: "Checkout PR head: ${{ github.event.workflow_run.head_sha }}" uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: ref: ${{ github.event.workflow_run.head_sha }} persist-credentials: false submodules: recursive - name: Set up Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: node-version-file: './docs/.nvmrc' - name: yarn install run: | yarn install --check-cache - name: Download database diagnostics from integration tests uses: dawidd6/action-download-artifact@8a338493df3d275e4a7a63bcff3b8fe97e51a927 # v19 with: workflow: superset-python-integrationtest.yml run_id: ${{ github.event.workflow_run.id }} name: database-diagnostics path: docs/src/data/ if_no_artifact_found: 'warning' - name: Use fresh diagnostics run: | if [ -f "src/data/databases-diagnostics.json" ]; then echo "Using fresh diagnostics from integration tests" mv src/data/databases-diagnostics.json src/data/databases.json else echo "Warning: No diagnostics artifact found, using committed data" fi - name: yarn typecheck run: | yarn typecheck - name: yarn build run: | yarn build