This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch run-scripts-from-current-version
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit fc0c7de10d8e4da883575b5874e5371223699d1e
Author: Jarek Potiuk <[email protected]>
AuthorDate: Tue Feb 17 00:17:31 2026 +0100

    Publish docs to s3 uses current version of workflows/scripts
    
    In case we built docs for past version of airflow we checkout
    both - current (main) version of code to use latest environment
    and tag version of code to build the documentation. The workflow
    mixed sub-workflows and run them from the "tag" version of workflow
    rather than from current.
    
    This PR fixes it.
---
 .github/workflows/publish-docs-to-s3.yml           | 30 ++++++++--------------
 .../src/airflow_breeze/utils/docs_publisher.py     | 15 +++++++++--
 2 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/.github/workflows/publish-docs-to-s3.yml 
b/.github/workflows/publish-docs-to-s3.yml
index 2f5f30b07bc..d1a288ce3c1 100644
--- a/.github/workflows/publish-docs-to-s3.yml
+++ b/.github/workflows/publish-docs-to-s3.yml
@@ -182,6 +182,13 @@ jobs:
         with:
           persist-credentials: false
           path: current-version
+      - name: "Free up disk space"
+        shell: bash
+        run: ./current-version/scripts/tools/free_up_disk_space.sh
+      - name: "Make /mnt writeable"
+        run: ./current-version/scripts/ci/make_mnt_writeable.sh
+      - name: "Move docker to /mnt"
+        run: ./current-version/scripts/ci/move_docker_to_mnt.sh
       # We are checking repo for both - breeze and docs from the ref provided 
as input
       # This will take longer as we need to rebuild CI image and it will not 
use cache
       # but it will build the CI image from the version of Airflow that is 
used to check out things
@@ -192,13 +199,6 @@ jobs:
           ref: ${{ inputs.ref }}
           fetch-depth: 0
           fetch-tags: true
-      - name: "Free up disk space"
-        shell: bash
-        run: ./scripts/tools/free_up_disk_space.sh
-      - name: "Make /mnt writeable"
-        run: ./scripts/ci/make_mnt_writeable.sh
-      - name: "Move docker to /mnt"
-        run: ./scripts/ci/move_docker_to_mnt.sh
       - name: "Apply patch commits if provided"
         run: |
           if [[ "${APPLY_COMMITS}" != "" ]]; then
@@ -248,18 +248,15 @@ jobs:
           persist-credentials: false
           fetch-depth: 0
           fetch-tags: true
-          path: current-version
-        if: inputs.build-sboms
-      - name: "Reinstall breeze from the current version"
-        run: |
-          breeze setup self-upgrade --use-current-airflow-sources
         if: inputs.build-sboms
-        working-directory: current-version
+      - name: "Install Breeze from the current version"
+        uses: ./.github/actions/breeze
+        with:
+          python-version: "${{ needs.build-info.outputs.default-python-version 
}}"
       - name: "Make sure SBOM dir exists and has the right permissions"
         run: |
           sudo mkdir -vp ./files/sbom
           sudo chown -R "${USER}" .
-        working-directory: current-version
         if: inputs.build-sboms
       - name: "Prepare SBOMs using current version of Breeze"
         env:
@@ -271,17 +268,12 @@ jobs:
           breeze sbom update-sbom-information
           --airflow-version ${AIRFLOW_VERSION} --remote-name origin --force
           --all-combinations --run-in-parallel --airflow-root-path 
"${GITHUB_WORKSPACE}"
-        working-directory: current-version
         if: inputs.build-sboms
       - name: "Generated SBOM files"
         run: |
           echo "Generated SBOM files:"
           find ./generated/_build/docs/apache-airflow/stable/sbom/ -type f | 
sort
         if: inputs.build-sboms
-      - name: "Reinstall breeze from ${{ inputs.ref }} reference"
-        run:
-          breeze setup self-upgrade --use-current-airflow-sources
-        if: inputs.build-sboms
       - name: Check disk space available
         run: df -H
       # Here we will create temp airflow-site dir to publish docs
diff --git a/dev/breeze/src/airflow_breeze/utils/docs_publisher.py 
b/dev/breeze/src/airflow_breeze/utils/docs_publisher.py
index 861a7730ded..ab18c0cdb95 100644
--- a/dev/breeze/src/airflow_breeze/utils/docs_publisher.py
+++ b/dev/breeze/src/airflow_breeze/utils/docs_publisher.py
@@ -18,6 +18,7 @@ from __future__ import annotations
 
 import os
 import shutil
+from pathlib import Path
 
 from airflow_breeze.global_constants import get_airflow_version, 
get_airflowctl_version, get_task_sdk_version
 from airflow_breeze.utils.console import Output, get_console
@@ -48,10 +49,20 @@ class DocsPublisher:
 
     @property
     def _build_dir(self) -> str:
+        if Path(f"{GENERATED_PATH}/_build/").is_dir():
+            build_dir = f"{GENERATED_PATH}/_build"
+        elif Path("docs/_build").is_dir():
+            build_dir = "docs/_build/"
+        else:
+            raise RuntimeError(
+                f"The build directory does not exist "
+                f"(neither {GENERATED_PATH}_build/ - Airflow 3 nor "
+                f"docs/_build/ - Airflow 2)"
+            )
         if self.is_versioned:
             version = "stable"
-            return 
f"{GENERATED_PATH}/_build/docs/{self.package_name}/{version}"
-        return f"{GENERATED_PATH}/_build/docs/{self.package_name}"
+            return f"{build_dir}/docs/{self.package_name}/{version}"
+        return f"{build_dir}/docs/{self.package_name}"
 
     @property
     def _current_version(self):

Reply via email to