This is an automated email from the ASF dual-hosted git repository. gopidesu pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow-site.git
The following commit(s) were added to refs/heads/main by this push: new e69ac2c5d0 Update metadata gen and add RewriteRule (#1181) e69ac2c5d0 is described below commit e69ac2c5d01016cb0a171ff9fa408e9b8733a0ed Author: GPK <gopidesupa...@gmail.com> AuthorDate: Thu May 8 09:47:17 2025 +0100 Update metadata gen and add RewriteRule (#1181) * Update metadata gen and add RewriteRule * Copy generated docs index pages to S3 * Add cloudfront url --- .github/workflows/build.yml | 24 ++++++++++++++++++++ dump-docs-packages-metadata.py | 44 +++++-------------------------------- landing-pages/site/static/.htaccess | 5 +++++ 3 files changed, 34 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8343e0d4e4..f05f44c64c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -107,6 +107,30 @@ jobs: rm -rf ./docs-archive/* echo "docs-archive directory files are deleted as they are no longer needed after the site is built in the above step" /mnt/airflow-site/.github/scripts/print_df.sh + + - name: Install AWS CLI v2 + if: ${{ github.event_name == 'push' }} + run: | + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip + unzip -q /tmp/awscliv2.zip -d /tmp + rm /tmp/awscliv2.zip + sudo /tmp/aws/install --update + rm -rf /tmp/aws/ + + - name: Configure AWS credentials + if: ${{ github.event_name == 'push' }} + uses: aws-actions/configure-aws-credentials@010d0da01d0b5a38af31e9c3470dbfdabdecca3a # v4.0.1 + with: + aws-access-key-id: ${{ secrets.DOCS_AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.DOCS_AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-2 + + - name: Copy docs index page to S3 docs + if: ${{ github.event_name == 'push' }} + run: | + aws s3 cp ./dist/docs/index.html s3://staging-docs-airflow-apache-org/docs/index.html + aws s3 cp ./dist/docs/index.xml s3://staging-docs-airflow-apache-org/docs/index.xml + - name: 🐅 Optimize artifacts if: ${{ github.event_name == 'pull_request' }} run: | diff --git a/dump-docs-packages-metadata.py b/dump-docs-packages-metadata.py index aee2b9a3b5..6e1955907d 100755 --- a/dump-docs-packages-metadata.py +++ b/dump-docs-packages-metadata.py @@ -1,44 +1,10 @@ #!/usr/bin/env python - -import json import sys -import os -from typing import List -import semver - - -ROOT_DIR = os.path.dirname(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.path.pardir)) -APACHE_AIRFLOW_ARCHIVE = os.path.join(ROOT_DIR, "docs-archive") - - -def get_all_versions(directory: str) -> List[str]: - return sorted( - (f for f in os.listdir(directory) if os.path.isdir(os.path.join(directory, f))), - key=lambda d: semver.VersionInfo.parse(d), - ) - - -def get_stable_version(directory: str): - with open(os.path.join(directory, "stable.txt")) as f: - return f.read().strip() - - -def dump_docs_package_metadata(): - all_packages_infos = [ - { - "package-name": package_name, - "stable-version": get_stable_version(os.path.join(APACHE_AIRFLOW_ARCHIVE, package_name)), - "all-versions": get_all_versions(os.path.join(APACHE_AIRFLOW_ARCHIVE, package_name)), - } - for package_name in os.listdir(APACHE_AIRFLOW_ARCHIVE) - if ( - not package_name.startswith(".") and # Exclude .DS_Store/ - os.path.isfile(os.path.join(os.path.join(APACHE_AIRFLOW_ARCHIVE, package_name, 'stable.txt'))) - ) - ] - - json.dump(all_packages_infos, sys.stdout, indent=2) +import requests +resp = requests.get("https://staging-docs-airflow-apache-org.s3.us-east-2.amazonaws.com/manifest/packages-metadata.json") +if resp.status_code != 200: + raise RuntimeError(f"Failed to fetch metadata: {resp.status_code} - {resp.text}") -dump_docs_package_metadata() +sys.stdout.write(resp.text) diff --git a/landing-pages/site/static/.htaccess b/landing-pages/site/static/.htaccess index a80ece10f9..379cdad0a9 100644 --- a/landing-pages/site/static/.htaccess +++ b/landing-pages/site/static/.htaccess @@ -1,3 +1,8 @@ +RewriteEngine On + +RewriteCond %{REQUEST_URI} ^/docs [NC] +RewriteRule (.*) https://d3a2du7x0n8ydr.cloudfront.net/$1 [P] + RedirectMatch Permanent ^/docs/(stable|1.10.10)/api(\.html)?$ "https://airflow.apache.org/docs/apache-airflow/$1/rest-api-ref" RedirectMatch Permanent ^/docs/(stable|1.10.10)/(cli|macros)(\.html)?$ "https://airflow.apache.org/docs/apache-airflow/$1/$2-ref" RedirectMatch Permanent ^/((_api|_images|_modules|_sources|_static|howto)/.*)$ "https://airflow.apache.org/docs/apache-airflow/stable/$1"