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.git
The following commit(s) were added to refs/heads/main by this push:
new 0c347b4acf6 Fix redirects repository urls, use head repo when running
PR workflows (#54301)
0c347b4acf6 is described below
commit 0c347b4acf6213e769de7e8275f72e9444bda31a
Author: GPK <[email protected]>
AuthorDate: Sat Aug 9 20:41:52 2025 +0100
Fix redirects repository urls, use head repo when running PR workflows
(#54301)
---
.github/workflows/ci-amd.yml | 5 ++++-
.github/workflows/ci-image-checks.yml | 10 +++++++++
...tput_release-management_add-back-references.svg | 26 ++++++++++++++--------
...tput_release-management_add-back-references.txt | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 4 ++++
.../commands/release_management_commands.py | 26 ++++++++++++++++++++++
.../commands/release_management_commands_config.py | 2 ++
.../airflow_breeze/utils/add_back_references.py | 24 ++++++++++++--------
8 files changed, 79 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/ci-amd.yml b/.github/workflows/ci-amd.yml
index fbceae117d8..397902624bb 100644
--- a/.github/workflows/ci-amd.yml
+++ b/.github/workflows/ci-amd.yml
@@ -124,7 +124,8 @@ jobs:
${{ steps.selective-checks.outputs.selected-providers-list-as-string }}
skip-pre-commits: ${{ steps.selective-checks.outputs.skip-pre-commits }}
skip-providers-tests: ${{
steps.selective-checks.outputs.skip-providers-tests }}
- source-head-repo: ${{ steps.source-run-info.outputs.source-head-repo }}
+ source-head-repo: ${{ steps.source-run-info.outputs.head-repo }}
+ source-head-ref: ${{ steps.source-run-info.outputs.head-ref }}
sqlite-exclude: ${{ steps.selective-checks.outputs.sqlite-exclude }}
testable-core-integrations: ${{
steps.selective-checks.outputs.testable-core-integrations }}
testable-providers-integrations: ${{
steps.selective-checks.outputs.testable-providers-integrations }}
@@ -309,6 +310,8 @@ jobs:
default-postgres-version: ${{
needs.build-info.outputs.default-postgres-version }}
run-coverage: ${{ needs.build-info.outputs.run-coverage }}
use-uv: ${{ needs.build-info.outputs.use-uv }}
+ source-head-repo: ${{ needs.build-info.outputs.source-head-repo }}
+ source-head-ref: ${{ needs.build-info.outputs.source-head-ref }}
secrets:
DOCS_AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_AWS_ACCESS_KEY_ID }}
DOCS_AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_AWS_SECRET_ACCESS_KEY }}
diff --git a/.github/workflows/ci-image-checks.yml
b/.github/workflows/ci-image-checks.yml
index 8e1fc2991ca..7fd13495aa8 100644
--- a/.github/workflows/ci-image-checks.yml
+++ b/.github/workflows/ci-image-checks.yml
@@ -104,6 +104,14 @@ on: # yamllint disable-line rule:truthy
description: "Whether to use uv to build the image (true/false)"
required: true
type: string
+ source-head-repo:
+ description: "The source head repository to use for back-references"
+ default: "apache/airflow"
+ type: string
+ source-head-ref:
+ description: "The source head ref to use for back-references"
+ default: "main"
+ type: string
secrets:
DOCS_AWS_ACCESS_KEY_ID:
required: true
@@ -317,6 +325,8 @@ jobs:
INCLUDE_SUCCESS_OUTPUTS: "${{ inputs.include-success-outputs }}"
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
VERBOSE: "true"
+ HEAD_REPO: "${{ inputs.source-head-repo }}"
+ HEAD_REF: "${{ inputs.source-head-ref }}"
steps:
- name: "Cleanup repo"
shell: bash
diff --git
a/dev/breeze/doc/images/output_release-management_add-back-references.svg
b/dev/breeze/doc/images/output_release-management_add-back-references.svg
index 1ac6d317ab3..2764be6362d 100644
--- a/dev/breeze/doc/images/output_release-management_add-back-references.svg
+++ b/dev/breeze/doc/images/output_release-management_add-back-references.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 708.8"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 757.5999999999999"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -45,7 +45,7 @@
<defs>
<clipPath id="breeze-release-management-add-back-references-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="657.8" />
+ <rect x="0" y="0" width="1463.0" height="706.5999999999999" />
</clipPath>
<clipPath id="breeze-release-management-add-back-references-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -125,9 +125,15 @@
<clipPath id="breeze-release-management-add-back-references-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-add-back-references-line-26">
+ <rect x="0" y="635.9" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-add-back-references-line-27">
+ <rect x="0" y="660.3" width="1464" height="24.65"/>
+ </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="706.8" rx="8"/><text
class="breeze-release-management-add-back-references-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management add-back-references</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="755.6" rx="8"/><text
class="breeze-release-management-add-back-references-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management add-back-references</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -158,12 +164,14 @@
</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="459.2" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-18)">│</text><text
class="breeze-release-management-add-back-references-r6" x="24.4" y="459.2"
textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-18)">*</text><text
class="breeze-release-management-add-back-references-r4" x="61" y="459.2"
textLength="292.8" clip-path="url(#breeze-releas [...]
</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="483.6" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-19)">│</text><text
class="breeze-release-management-add-back-references-r4" x="61" y="483.6"
textLength="353.8"
clip-path="url(#breeze-release-management-add-back-references-line-19)">--include-not-ready-providers</text><text
class="breeze-release-management-add-back-references-r1" x="488" y="483.6"
textLength="817.4" c [...]
</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="508" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-20)">│</text><text
class="breeze-release-management-add-back-references-r4" x="61" y="508"
textLength="329.4"
clip-path="url(#breeze-release-management-add-back-references-line-20)">--include-removed-providers</text><text
class="breeze-release-management-add-back-references-r1" x="488" y="508"
textLength="561.2" clip-path [...]
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="532.4" textLength="1464"
clip-path="url(#breeze-release-management-add-back-references-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-add-back-references-r1" x="1464" y="532.4"
textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-21)">
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="556.8" textLength="24.4"
clip-path="url(#breeze-release-management-add-back-references-line-22)">╭─</text><text
class="breeze-release-management-add-back-references-r5" x="24.4" y="556.8"
textLength="195.2"
clip-path="url(#breeze-release-management-add-back-references-line-22)"> Common options </text><text
class="breeze-release-management-add-back-references-r5" x="219.6" y="556.8"
textLength="1 [...]
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="581.2" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-23)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="581.2"
textLength="109.8"
clip-path="url(#breeze-release-management-add-back-references-line-23)">--dry-run</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="581.2"
textLength="24.4" clip-path="url(#br [...]
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="605.6" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-24)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="605.6"
textLength="109.8"
clip-path="url(#breeze-release-management-add-back-references-line-24)">--verbose</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="605.6"
textLength="24.4" clip-path="url(#br [...]
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="630" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-25)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="630"
textLength="73.2"
clip-path="url(#breeze-release-management-add-back-references-line-25)">--help</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="630"
textLength="24.4" clip-path="url(#breeze-relea [...]
-</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="654.4" textLength="1464"
clip-path="url(#breeze-release-management-add-back-references-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-add-back-references-r1" x="1464" y="654.4"
textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-26)">
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="532.4" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-21)">│</text><text
class="breeze-release-management-add-back-references-r4" x="61" y="532.4"
textLength="134.2"
clip-path="url(#breeze-release-management-add-back-references-line-21)">--head-repo</text><text
class="breeze-release-management-add-back-references-r1" x="488" y="532.4"
textLength="488" clip-path="url(#breez [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="556.8" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-22)">│</text><text
class="breeze-release-management-add-back-references-r4" x="61" y="556.8"
textLength="122"
clip-path="url(#breeze-release-management-add-back-references-line-22)">--head-ref</text><text
class="breeze-release-management-add-back-references-r1" x="488" y="556.8"
textLength="439.2" clip-path="url(#breeze [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="581.2" textLength="1464"
clip-path="url(#breeze-release-management-add-back-references-line-23)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-add-back-references-r1" x="1464" y="581.2"
textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-23)">
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="605.6" textLength="24.4"
clip-path="url(#breeze-release-management-add-back-references-line-24)">╭─</text><text
class="breeze-release-management-add-back-references-r5" x="24.4" y="605.6"
textLength="195.2"
clip-path="url(#breeze-release-management-add-back-references-line-24)"> Common options </text><text
class="breeze-release-management-add-back-references-r5" x="219.6" y="605.6"
textLength="1 [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="630" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-25)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="630"
textLength="109.8"
clip-path="url(#breeze-release-management-add-back-references-line-25)">--dry-run</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="630"
textLength="24.4" clip-path="url(#breeze-r [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="654.4" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-26)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="654.4"
textLength="109.8"
clip-path="url(#breeze-release-management-add-back-references-line-26)">--verbose</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="654.4"
textLength="24.4" clip-path="url(#br [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="678.8" textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-27)">│</text><text
class="breeze-release-management-add-back-references-r4" x="24.4" y="678.8"
textLength="73.2"
clip-path="url(#breeze-release-management-add-back-references-line-27)">--help</text><text
class="breeze-release-management-add-back-references-r7" x="158.6" y="678.8"
textLength="24.4" clip-path="url(#breeze [...]
+</text><text class="breeze-release-management-add-back-references-r5" x="0"
y="703.2" textLength="1464"
clip-path="url(#breeze-release-management-add-back-references-line-28)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-add-back-references-r1" x="1464" y="703.2"
textLength="12.2"
clip-path="url(#breeze-release-management-add-back-references-line-28)">
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_add-back-references.txt
b/dev/breeze/doc/images/output_release-management_add-back-references.txt
index 5372e6d41c3..3966c4a0651 100644
--- a/dev/breeze/doc/images/output_release-management_add-back-references.txt
+++ b/dev/breeze/doc/images/output_release-management_add-back-references.txt
@@ -1 +1 @@
-5d1541667a68b9dd5b149bdc80dfe082
+50ca4583aba68302b3655d463477673a
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index 353a993d1cc..6159fda9aa4 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -285,6 +285,7 @@ class WorkflowInfo(NamedTuple):
ref: str | None
ref_name: str | None
pr_number: int | None
+ head_ref: str | None = None
def get_all_ga_outputs(self) -> Iterable[str]:
from airflow_breeze.utils.github import get_ga_output
@@ -297,6 +298,7 @@ class WorkflowInfo(NamedTuple):
yield get_ga_output(name="runs-on", value=self.get_runs_on())
yield get_ga_output(name="canary-run", value=self.is_canary_run())
yield get_ga_output(name="run-coverage", value=self.run_coverage())
+ yield get_ga_output(name="head-ref", value=self.head_ref)
def print_all_ga_outputs(self):
for output in self.get_all_ga_outputs():
@@ -348,6 +350,7 @@ def workflow_info(context: str) -> WorkflowInfo:
pr_number: int | None = None
ref_name = ctx.get("ref_name")
ref = ctx.get("ref")
+ head_ref = ctx.get("head_ref")
if event_name == GithubEvents.PULL_REQUEST.value:
event = ctx.get("event")
if event:
@@ -387,6 +390,7 @@ def workflow_info(context: str) -> WorkflowInfo:
pr_number=pr_number,
ref=ref,
ref_name=ref_name,
+ head_ref=head_ref,
)
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index 92c53635db9..34935c444ce 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -44,6 +44,7 @@ import click
from rich.progress import Progress
from rich.syntax import Syntax
+from airflow_breeze.branch_defaults import AIRFLOW_BRANCH
from airflow_breeze.commands.ci_image_commands import
rebuild_or_pull_ci_image_if_needed
from airflow_breeze.commands.common_options import (
argument_doc_packages,
@@ -1883,12 +1884,35 @@ def publish_docs(
@argument_doc_packages
@option_dry_run
@option_verbose
[email protected](
+ "--head-ref",
+ help="The branch of redirect files to use.",
+ default=AIRFLOW_BRANCH,
+ envvar="HEAD_REF",
+ show_default=True,
+)
[email protected](
+ "--head-repo",
+ help="The repository of redirect files to use.",
+ default=APACHE_AIRFLOW_GITHUB_REPOSITORY,
+ envvar="HEAD_REPO",
+ show_default=True,
+)
def add_back_references(
airflow_site_directory: str,
include_not_ready_providers: bool,
include_removed_providers: bool,
doc_packages: tuple[str, ...],
+ head_ref: str,
+ head_repo: str,
):
+ # head_ref and head_repo could be empty in canary runs
+
+ if head_ref == "":
+ head_ref = AIRFLOW_BRANCH
+ if head_repo == "":
+ head_repo = APACHE_AIRFLOW_GITHUB_REPOSITORY
+
"""Adds back references for documentation generated by build-docs and
publish-docs"""
site_path = Path(airflow_site_directory)
if not site_path.is_dir():
@@ -1911,6 +1935,8 @@ def add_back_references(
include_not_ready=include_not_ready_providers,
)
),
+ head_ref=head_ref,
+ head_repo=head_repo,
)
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index 2c013eec10e..62b41b30763 100644
---
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -382,6 +382,8 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"--airflow-site-directory",
"--include-not-ready-providers",
"--include-removed-providers",
+ "--head-repo",
+ "--head-ref",
],
},
],
diff --git a/dev/breeze/src/airflow_breeze/utils/add_back_references.py
b/dev/breeze/src/airflow_breeze/utils/add_back_references.py
index 6a9896c5da5..966a5944f97 100644
--- a/dev/breeze/src/airflow_breeze/utils/add_back_references.py
+++ b/dev/breeze/src/airflow_breeze/utils/add_back_references.py
@@ -26,9 +26,10 @@ from urllib.request import urlopen
from airflow_breeze.utils.console import get_console
airflow_redirects_link = (
-
"https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/redirects.txt"
+
"https://raw.githubusercontent.com/{head_repo}/{head_ref}/airflow-core/docs/redirects.txt"
)
-helm_redirects_link =
"https://raw.githubusercontent.com/apache/airflow/main/docs/helm-chart/redirects.txt"
+
+helm_redirects_link =
"https://raw.githubusercontent.com/{head_repo}/{head_ref}/docs/helm-chart/redirects.txt"
def download_file(url):
@@ -64,10 +65,10 @@ def get_redirect_content(url: str):
return f'<html><head><meta http-equiv="refresh" content="0;
url={url}"/></head></html>'
-def get_github_provider_redirects_url(provider_name: str):
- return (
-
f"https://raw.githubusercontent.com/apache/airflow/main/providers/{provider_name}/docs/redirects.txt"
- )
+def get_github_provider_redirects_url(
+ provider_name: str, head_repo: str = "apache/airflow", head_ref: str =
"main"
+) -> str:
+ return
f"https://raw.githubusercontent.com/{head_repo}/{head_ref}/providers/{provider_name}/docs/redirects.txt"
def crete_redirect_html_if_not_exist(path: Path, content: str):
@@ -133,15 +134,20 @@ def generate_back_references(link: str, base_path: Path):
def start_generating_back_references(
airflow_site_directory: Path,
short_provider_ids: list[str],
+ head_repo: str = "apache/airflow",
+ head_ref: str = "main",
):
+ airflow_redirects_url = airflow_redirects_link.format(head_repo=head_repo,
head_ref=head_ref)
+ helm_redirects_url = helm_redirects_link.format(head_repo=head_repo,
head_ref=head_ref)
+
docs_archive_path = airflow_site_directory / "docs-archive"
airflow_docs_path = docs_archive_path / "apache-airflow"
helm_docs_path = docs_archive_path / "helm-chart"
if "apache-airflow" in short_provider_ids:
- generate_back_references(airflow_redirects_link, airflow_docs_path)
+ generate_back_references(airflow_redirects_url, airflow_docs_path)
short_provider_ids.remove("apache-airflow")
if "helm-chart" in short_provider_ids:
- generate_back_references(helm_redirects_link, helm_docs_path)
+ generate_back_references(helm_redirects_url, helm_docs_path)
short_provider_ids.remove("helm-chart")
if "docker-stack" in short_provider_ids:
get_console().print("[info]Skipping docker-stack package. No
back-reference needed.")
@@ -155,6 +161,6 @@ def start_generating_back_references(
full_provider_name = f"apache-airflow-providers-{p.replace('.',
'-')}"
get_console().print(f"Processing airflow provider:
{full_provider_name}")
generate_back_references(
-
get_github_provider_redirects_url(slash_based_short_provider_id),
+
get_github_provider_redirects_url(slash_based_short_provider_id, head_repo,
head_ref),
docs_archive_path / full_provider_name,
)