This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-2-test by this push:
new ebf50d00ac4 [v3-2-test] Retry uv sync lowest-direct resolution in CI
to handle transient failures (#64565) (#64578)
ebf50d00ac4 is described below
commit ebf50d00ac4ec0f5d4cd6825bf42aa402b04cd2d
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Apr 1 23:52:40 2026 +0200
[v3-2-test] Retry uv sync lowest-direct resolution in CI to handle
transient failures (#64565) (#64578)
(cherry picked from commit 679d15c18928a555dc1d8f3d4ae8c31b3bf2a677)
Co-authored-by: Jarek Potiuk <[email protected]>
---
Dockerfile.ci | 22 ++++++++++++++++++++--
scripts/docker/entrypoint_ci.sh | 22 ++++++++++++++++++++--
2 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 601aa781a8a..2b1c38f371e 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1474,8 +1474,26 @@ function check_force_lowest_dependencies() {
# --no-binary is needed in order to avoid libxml and xmlsec using
different version of libxml2
# (binary lxml embeds its own libxml2, while xmlsec uses system one).
# See https://bugs.launchpad.net/lxml/+bug/2110068
- uv sync --resolution lowest-direct --no-binary-package lxml
--no-binary-package xmlsec --all-extras \
- --no-python-downloads --no-managed-python
+
+ local sync_successful="false"
+ for attempt in 1 2 3; do
+ echo "Attempt ${attempt} of syncing to lowest dependencies"
+ set -x
+ if UV_LOCK_TIMEOUT=200 uv sync --resolution lowest-direct
--no-binary-package lxml --no-binary-package xmlsec --all-extras \
+ --no-python-downloads --no-managed-python; then
+ set +x
+ sync_successful="true"
+ break
+ fi
+ set +x
+ echo "Sleeping 30s"
+ sleep 30
+ echo "Attempt ${attempt} failed. Retrying..."
+ done
+ if [[ "${sync_successful}" != "true" ]]; then
+ echo "${COLOR_RED}Failed to sync lowest dependencies after 3
attempts.${COLOR_RESET}"
+ exit 1
+ fi
else
echo
echo "${COLOR_BLUE}Forcing dependencies to lowest versions for
Airflow.${COLOR_RESET}"
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index e7c55af3a2e..fe0cbf22620 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -413,8 +413,26 @@ function check_force_lowest_dependencies() {
# --no-binary is needed in order to avoid libxml and xmlsec using
different version of libxml2
# (binary lxml embeds its own libxml2, while xmlsec uses system one).
# See https://bugs.launchpad.net/lxml/+bug/2110068
- uv sync --resolution lowest-direct --no-binary-package lxml
--no-binary-package xmlsec --all-extras \
- --no-python-downloads --no-managed-python
+
+ local sync_successful="false"
+ for attempt in 1 2 3; do
+ echo "Attempt ${attempt} of syncing to lowest dependencies"
+ set -x
+ if UV_LOCK_TIMEOUT=200 uv sync --resolution lowest-direct
--no-binary-package lxml --no-binary-package xmlsec --all-extras \
+ --no-python-downloads --no-managed-python; then
+ set +x
+ sync_successful="true"
+ break
+ fi
+ set +x
+ echo "Sleeping 30s"
+ sleep 30
+ echo "Attempt ${attempt} failed. Retrying..."
+ done
+ if [[ "${sync_successful}" != "true" ]]; then
+ echo "${COLOR_RED}Failed to sync lowest dependencies after 3
attempts.${COLOR_RESET}"
+ exit 1
+ fi
else
echo
echo "${COLOR_BLUE}Forcing dependencies to lowest versions for
Airflow.${COLOR_RESET}"