| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # Netlify configuration for Superset documentation |
| # This enables automatic deploy previews for PRs that modify docs |
| |
| [build] |
| # Base directory is the docs folder |
| base = "docs" |
| # Build command for Docusaurus |
| command = "yarn install && yarn build" |
| # Output directory (relative to base) |
| publish = "build" |
| # Skip builds when no docs changes (exit 0 = skip, non-zero = build). |
| # Checks for changes in docs/ and README.md (which gets pulled into docs). |
| # |
| # $CACHED_COMMIT_REF is the last *deployed* commit; it is set on incremental |
| # builds (notably the master production deploy) and empty on a context's |
| # first build (every deploy preview). The production path diffs against it |
| # and skips correctly. |
| # |
| # Deploy previews need different handling: Netlify checks out a *merge* |
| # commit, so $COMMIT_REF (the PR head SHA) is frequently not resolvable in |
| # the clone, and on a shallow clone `git merge-base` can fail too -- so the |
| # previous logic fell through to a build on every PR, even non-docs ones. |
| # Instead, always diff the checked-out HEAD against its merge-base with |
| # master, deepening the shallow clone until that merge-base resolves. If it |
| # genuinely can't be determined, exit non-zero to build (fail safe). |
| ignore = 'if [ -n "$CACHED_COMMIT_REF" ]; then git diff --quiet "$CACHED_COMMIT_REF" HEAD -- . ../README.md; else git fetch --no-tags origin master >/dev/null 2>&1 || true; i=0; while [ "$i" -lt 10 ] && ! git merge-base origin/master HEAD >/dev/null 2>&1; do git fetch --deepen=200 origin master >/dev/null 2>&1 || break; i=$((i+1)); done; BASE="$(git merge-base origin/master HEAD 2>/dev/null || true)"; if [ -z "$BASE" ]; then exit 1; fi; git diff --quiet "$BASE" HEAD -- . ../README.md; fi' |
| |
| [build.environment] |
| # Node version matching docs/.nvmrc |
| NODE_VERSION = "20" |
| # Yarn version |
| YARN_VERSION = "1.22.22" |
| # Increase heap size for webpack bundling of Superset UI components |
| NODE_OPTIONS = "--max-old-space-size=8192" |
| |
| # Deploy preview settings |
| [context.deploy-preview] |
| command = "yarn install && yarn build" |
| |
| # Branch deploy settings (for feature branches) |
| [context.branch-deploy] |
| command = "yarn install && yarn build" |
| |
| # Redirect /docs to the main docs page |
| [[redirects]] |
| from = "/docs" |
| to = "/docs/intro" |
| status = 301 |
| |
| # Handle SPA routing for Docusaurus |
| [[redirects]] |
| from = "/*" |
| to = "/index.html" |
| status = 200 |