Skip to content

Commit 9a6baab

Browse files
authored
Improve caching for multi-platform images. (#23562)
This is another attempt to improve caching performance for multi-platform images as the previous ones were undermined by a bug in buildx multiplatform cache-to implementattion that caused the image cache to be overwritten between platforms, when multiple images were build. The bug is created for the buildx behaviour at docker/buildx#1044 and until it is fixed we have to prpare separate caches for each platform and push them to separate tags. That adds a bit overhead on the building step, but for now it is the simplest way we can workaround the bug if we do not want to manually manipulate manifests and images.
1 parent 46c1c00 commit 9a6baab

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1128
-1066
lines changed

.github/workflows/build-images.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ env:
3939
secrets.CONSTRAINTS_GITHUB_REPOSITORY || 'apache/airflow' }}
4040
# This token is WRITE one - pull_request_target type of events always have the WRITE token
4141
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42-
LOGIN_TO_GITHUB_REGISTRY: "true"
4342
IMAGE_TAG_FOR_THE_BUILD: "${{ github.event.pull_request.head.sha || github.sha }}"
4443

4544
concurrency:
@@ -135,7 +134,7 @@ jobs:
135134
if [[ "${{ github.event_name }}" == 'schedule' ]]; then
136135
echo "::set-output name=cacheDirective::disabled"
137136
else
138-
echo "::set-output name=cacheDirective::pulled"
137+
echo "::set-output name=cacheDirective:registry"
139138
fi
140139
141140
if [[ "$SELECTIVE_CHECKS_IMAGE_BUILD" == "true" ]]; then

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ env:
4545
secrets.CONSTRAINTS_GITHUB_REPOSITORY || 'apache/airflow' }}
4646
# In builds from forks, this token is read-only. For scheduler/direct push it is WRITE one
4747
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48-
LOGIN_TO_GITHUB_REGISTRY: "true"
4948
ENABLE_TEST_COVERAGE: "${{ github.event_name == 'push' }}"
5049
IMAGE_TAG_FOR_THE_BUILD: "${{ github.event.pull_request.head.sha || github.sha }}"
5150

@@ -265,7 +264,7 @@ jobs:
265264
if [[ "${{ github.event_name }}" == 'schedule' ]]; then
266265
echo "::set-output name=cacheDirective::disabled"
267266
else
268-
echo "::set-output name=cacheDirective::pulled"
267+
echo "::set-output name=cacheDirective::registry"
269268
fi
270269
271270
if [[ "$SELECTIVE_CHECKS_IMAGE_BUILD" == "true" ]]; then
@@ -1608,9 +1607,10 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
16081607
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
16091608
- name: "Generate constraints"
16101609
run: |
1611-
breeze generate-constraints --run-in-parallel --generate-constraints-mode source-providers
1612-
breeze generate-constraints --run-in-parallel --generate-constraints-mode pypi-providers
1613-
breeze generate-constraints --run-in-parallel --generate-constraints-mode no-providers
1610+
breeze generate-constraints --run-in-parallel \
1611+
--airflow-constraints-mode constraints-source-providers
1612+
breeze generate-constraints --run-in-parallel --airflow-constraints-mode constraints-no-providers
1613+
breeze generate-constraints --run-in-parallel --airflow-constraints-mode constraints
16141614
env:
16151615
PYTHON_VERSIONS: ${{ needs.build-info.outputs.pythonVersionsListAsString }}
16161616
- name: "Set constraints branch name"

BREEZE.rst

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,23 +1128,22 @@ all or selected python version and single constraint mode like this:
11281128

11291129
.. code-block:: bash
11301130
1131-
breeze generate-constraints --generate-constraints-mode pypi-providers
1131+
breeze generate-constraints --airflow-constraints-mode constraints
11321132
11331133
Constraints are generated separately for each python version and there are separate constraints modes:
11341134

11351135
* 'constraints' - those are constraints generated by matching the current airflow version from sources
11361136
and providers that are installed from PyPI. Those are constraints used by the users who want to
1137-
install airflow with pip. Use ``pypi-providers`` mode for that.
1137+
install airflow with pip.
11381138

11391139
* "constraints-source-providers" - those are constraints generated by using providers installed from
11401140
current sources. While adding new providers their dependencies might change, so this set of providers
11411141
is the current set of the constraints for airflow and providers from the current main sources.
1142-
Those providers are used by CI system to keep "stable" set of constraints. Use
1143-
``source-providers`` mode for that.
1142+
Those providers are used by CI system to keep "stable" set of constraints.
11441143

11451144
* "constraints-no-providers" - those are constraints generated from only Apache Airflow, without any
11461145
providers. If you want to manage airflow separately and then add providers individually, you can
1147-
use those. Use ``no-providers`` mode for that.
1146+
use those.
11481147

11491148
Those are all available flags of ``generate-constraints`` command:
11501149

CONTRIBUTING.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -882,18 +882,19 @@ There are several sets of constraints we keep:
882882
providers. If you want to manage airflow separately and then add providers individually, you can
883883
use those. Those constraints are named ``constraints-no-providers-<PYTHON_MAJOR_MINOR_VERSION>.txt``.
884884

885-
We also have constraints with "source-providers" but they are used i
886-
887885
The first two can be used as constraints file when installing Apache Airflow in a repeatable way.
888886
It can be done from the sources:
889887

890888
from the PyPI package:
891889

892890
.. code-block:: bash
893891
894-
pip install apache-airflow==2.2.5 \
892+
pip install apache-airflow[google,amazon,async]==2.2.5 \
895893
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.2.5/constraints-3.7.txt"
896894
895+
The last one can be used to install Airflow in "minimal" mode - i.e when bare Airflow is installed without
896+
extras.
897+
897898
When you install airflow from sources (in editable mode) you should use "constraints-source-providers"
898899
instead (this accounts for the case when some providers have not yet been released and have conflicting
899900
requirements).
@@ -909,14 +910,14 @@ This works also with extras - for example:
909910
.. code-block:: bash
910911
911912
pip install ".[ssh]" \
912-
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints--source-providers-3.7.txt"
913+
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-source-providers-3.7.txt"
913914
914915
915916
There are different set of fixed constraint files for different python major/minor versions and you should
916917
use the right file for the right python version.
917918

918919
If you want to update just airflow dependencies, without paying attention to providers, you can do it using
919-
-no-providers constraint files as well.
920+
``constraints-no-providers`` constraint files as well.
920921

921922
.. code-block:: bash
922923

Dockerfile

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -315,12 +315,14 @@ function install_airflow_dependencies_from_branch_tip() {
315315
fi
316316
# Install latest set of dependencies using constraints. In case constraints were upgraded and there
317317
# are conflicts, this might fail, but it should be fixed in the following installation steps
318+
set -x
318319
pip install \
319320
"https://github.com/${AIRFLOW_REPO}/archive/${AIRFLOW_BRANCH}.tar.gz#egg=apache-airflow[${AIRFLOW_EXTRAS}]" \
320321
--constraint "${AIRFLOW_CONSTRAINTS_LOCATION}" || true
321322
# make sure correct PIP version is used
322323
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
323324
pip freeze | grep apache-airflow-providers | xargs pip uninstall --yes 2>/dev/null || true
325+
set +x
324326
echo
325327
echo "${COLOR_BLUE}Uninstalling just airflow. Dependencies remain. Now target airflow can be reinstalled using mostly cached dependencies${COLOR_RESET}"
326328
echo
@@ -384,7 +386,7 @@ function common::get_constraints_location() {
384386
local constraints_base="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/${AIRFLOW_CONSTRAINTS_REFERENCE}"
385387
local python_version
386388
python_version="$(python --version 2>/dev/stdout | cut -d " " -f 2 | cut -d "." -f 1-2)"
387-
AIRFLOW_CONSTRAINTS_LOCATION="${constraints_base}/${AIRFLOW_CONSTRAINTS}-${python_version}.txt"
389+
AIRFLOW_CONSTRAINTS_LOCATION="${constraints_base}/${AIRFLOW_CONSTRAINTS_MODE}-${python_version}.txt"
388390
fi
389391
}
390392

@@ -563,40 +565,19 @@ function install_airflow_and_providers_from_docker_context_files(){
563565
return
564566
fi
565567

566-
if [[ "${UPGRADE_TO_NEWER_DEPENDENCIES}" != "false" ]]; then
567-
echo
568-
echo "${COLOR_BLUE}Force re-installing airflow and providers from local files with eager upgrade${COLOR_RESET}"
569-
echo
570-
# force reinstall all airflow + provider package local files with eager upgrade
571-
pip install "${pip_flags[@]}" --upgrade --upgrade-strategy eager \
572-
${reinstalling_apache_airflow_package} ${reinstalling_apache_airflow_providers_packages} \
573-
${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
574-
else
575-
echo
576-
echo "${COLOR_BLUE}Force re-installing airflow and providers from local files with constraints and upgrade if needed${COLOR_RESET}"
577-
echo
578-
if [[ ${AIRFLOW_CONSTRAINTS_LOCATION} == "/"* ]]; then
579-
grep -ve '^apache-airflow' <"${AIRFLOW_CONSTRAINTS_LOCATION}" > /tmp/constraints.txt
580-
else
581-
# Remove provider packages from constraint files because they are locally prepared
582-
curl -L "${AIRFLOW_CONSTRAINTS_LOCATION}" | grep -ve '^apache-airflow' > /tmp/constraints.txt
583-
fi
584-
# force reinstall airflow + provider package local files with constraints + upgrade if needed
585-
pip install "${pip_flags[@]}" --force-reinstall \
586-
${reinstalling_apache_airflow_package} ${reinstalling_apache_airflow_providers_packages} \
587-
--constraint /tmp/constraints.txt
588-
rm /tmp/constraints.txt
589-
# make sure correct PIP version is used \
590-
pip install "pip==${AIRFLOW_PIP_VERSION}"
591-
# then upgrade if needed without using constraints to account for new limits in setup.py
592-
pip install --upgrade --upgrade-strategy only-if-needed \
593-
${reinstalling_apache_airflow_package} ${reinstalling_apache_airflow_providers_packages}
594-
fi
568+
echo
569+
echo "${COLOR_BLUE}Force re-installing airflow and providers from local files with eager upgrade${COLOR_RESET}"
570+
echo
571+
# force reinstall all airflow + provider package local files with eager upgrade
572+
set -x
573+
pip install "${pip_flags[@]}" --upgrade --upgrade-strategy eager \
574+
${reinstalling_apache_airflow_package} ${reinstalling_apache_airflow_providers_packages} \
575+
${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
576+
set +x
595577

596578
# make sure correct PIP version is left installed
597579
pip install "pip==${AIRFLOW_PIP_VERSION}"
598580
pip check
599-
600581
}
601582

602583
function install_all_other_packages_from_docker_context_files() {
@@ -608,10 +589,12 @@ function install_all_other_packages_from_docker_context_files() {
608589
# shellcheck disable=SC2010
609590
reinstalling_other_packages=$(ls /docker-context-files/*.{whl,tar.gz} 2>/dev/null | \
610591
grep -v apache_airflow | grep -v apache-airflow || true)
611-
if [[ -n "${reinstalling_other_packages}" ]]; then \
592+
if [[ -n "${reinstalling_other_packages}" ]]; then
593+
set -x
612594
pip install --force-reinstall --no-deps --no-index ${reinstalling_other_packages}
613595
# make sure correct PIP version is used
614596
pip install "pip==${AIRFLOW_PIP_VERSION}"
597+
set -x
615598
fi
616599
}
617600

@@ -664,9 +647,11 @@ function install_airflow() {
664647
if [[ -n "${AIRFLOW_INSTALL_EDITABLE_FLAG}" ]]; then
665648
# Remove airflow and reinstall it using editable flag
666649
# We can only do it when we install airflow from sources
650+
set -x
667651
pip uninstall apache-airflow --yes
668652
pip install ${AIRFLOW_INSTALL_EDITABLE_FLAG} \
669653
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}"
654+
set +x
670655
fi
671656

672657
# make sure correct PIP version is used
@@ -679,6 +664,7 @@ function install_airflow() {
679664
echo
680665
echo "${COLOR_BLUE}Installing all packages with constraints and upgrade if needed${COLOR_RESET}"
681666
echo
667+
set -x
682668
pip install ${AIRFLOW_INSTALL_EDITABLE_FLAG} \
683669
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}" \
684670
--constraint "${AIRFLOW_CONSTRAINTS_LOCATION}"
@@ -690,6 +676,7 @@ function install_airflow() {
690676
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}"
691677
# make sure correct PIP version is used
692678
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
679+
set +x
693680
echo
694681
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
695682
echo
@@ -718,18 +705,17 @@ set -euo pipefail
718705

719706
. "$( dirname "${BASH_SOURCE[0]}" )/common.sh"
720707

721-
722-
set -x
723-
724708
function install_additional_dependencies() {
725709
if [[ "${UPGRADE_TO_NEWER_DEPENDENCIES}" != "false" ]]; then
726710
echo
727711
echo "${COLOR_BLUE}Installing additional dependencies while upgrading to newer dependencies${COLOR_RESET}"
728712
echo
713+
set -x
729714
pip install --upgrade --upgrade-strategy eager \
730715
${ADDITIONAL_PYTHON_DEPS} ${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
731716
# make sure correct PIP version is used
732717
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
718+
set +x
733719
echo
734720
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
735721
echo
@@ -738,10 +724,12 @@ function install_additional_dependencies() {
738724
echo
739725
echo "${COLOR_BLUE}Installing additional dependencies upgrading only if needed${COLOR_RESET}"
740726
echo
727+
set -x
741728
pip install --upgrade --upgrade-strategy only-if-needed \
742729
${ADDITIONAL_PYTHON_DEPS}
743730
# make sure correct PIP version is used
744731
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
732+
set +x
745733
echo
746734
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
747735
echo
@@ -1185,7 +1173,7 @@ ARG AIRFLOW_EXTRAS
11851173
ARG ADDITIONAL_AIRFLOW_EXTRAS=""
11861174
# Allows to override constraints source
11871175
ARG CONSTRAINTS_GITHUB_REPOSITORY="apache/airflow"
1188-
ARG AIRFLOW_CONSTRAINTS="constraints"
1176+
ARG AIRFLOW_CONSTRAINTS_MODE="constraints"
11891177
ARG AIRFLOW_CONSTRAINTS_REFERENCE=""
11901178
ARG AIRFLOW_CONSTRAINTS_LOCATION=""
11911179
ARG DEFAULT_CONSTRAINTS_BRANCH="constraints-main"
@@ -1275,7 +1263,7 @@ ENV AIRFLOW_PIP_VERSION=${AIRFLOW_PIP_VERSION} \
12751263
AIRFLOW_BRANCH=${AIRFLOW_BRANCH} \
12761264
AIRFLOW_EXTRAS=${AIRFLOW_EXTRAS}${ADDITIONAL_AIRFLOW_EXTRAS:+,}${ADDITIONAL_AIRFLOW_EXTRAS} \
12771265
CONSTRAINTS_GITHUB_REPOSITORY=${CONSTRAINTS_GITHUB_REPOSITORY} \
1278-
AIRFLOW_CONSTRAINTS=${AIRFLOW_CONSTRAINTS} \
1266+
AIRFLOW_CONSTRAINTS_MODE=${AIRFLOW_CONSTRAINTS_MODE} \
12791267
AIRFLOW_CONSTRAINTS_REFERENCE=${AIRFLOW_CONSTRAINTS_REFERENCE} \
12801268
AIRFLOW_CONSTRAINTS_LOCATION=${AIRFLOW_CONSTRAINTS_LOCATION} \
12811269
DEFAULT_CONSTRAINTS_BRANCH=${DEFAULT_CONSTRAINTS_BRANCH} \

Dockerfile.ci

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,14 @@ function install_airflow_dependencies_from_branch_tip() {
275275
fi
276276
# Install latest set of dependencies using constraints. In case constraints were upgraded and there
277277
# are conflicts, this might fail, but it should be fixed in the following installation steps
278+
set -x
278279
pip install \
279280
"https://github.com/${AIRFLOW_REPO}/archive/${AIRFLOW_BRANCH}.tar.gz#egg=apache-airflow[${AIRFLOW_EXTRAS}]" \
280281
--constraint "${AIRFLOW_CONSTRAINTS_LOCATION}" || true
281282
# make sure correct PIP version is used
282283
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
283284
pip freeze | grep apache-airflow-providers | xargs pip uninstall --yes 2>/dev/null || true
285+
set +x
284286
echo
285287
echo "${COLOR_BLUE}Uninstalling just airflow. Dependencies remain. Now target airflow can be reinstalled using mostly cached dependencies${COLOR_RESET}"
286288
echo
@@ -344,7 +346,7 @@ function common::get_constraints_location() {
344346
local constraints_base="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/${AIRFLOW_CONSTRAINTS_REFERENCE}"
345347
local python_version
346348
python_version="$(python --version 2>/dev/stdout | cut -d " " -f 2 | cut -d "." -f 1-2)"
347-
AIRFLOW_CONSTRAINTS_LOCATION="${constraints_base}/${AIRFLOW_CONSTRAINTS}-${python_version}.txt"
349+
AIRFLOW_CONSTRAINTS_LOCATION="${constraints_base}/${AIRFLOW_CONSTRAINTS_MODE}-${python_version}.txt"
348350
fi
349351
}
350352

@@ -514,9 +516,11 @@ function install_airflow() {
514516
if [[ -n "${AIRFLOW_INSTALL_EDITABLE_FLAG}" ]]; then
515517
# Remove airflow and reinstall it using editable flag
516518
# We can only do it when we install airflow from sources
519+
set -x
517520
pip uninstall apache-airflow --yes
518521
pip install ${AIRFLOW_INSTALL_EDITABLE_FLAG} \
519522
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}"
523+
set +x
520524
fi
521525

522526
# make sure correct PIP version is used
@@ -529,6 +533,7 @@ function install_airflow() {
529533
echo
530534
echo "${COLOR_BLUE}Installing all packages with constraints and upgrade if needed${COLOR_RESET}"
531535
echo
536+
set -x
532537
pip install ${AIRFLOW_INSTALL_EDITABLE_FLAG} \
533538
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}" \
534539
--constraint "${AIRFLOW_CONSTRAINTS_LOCATION}"
@@ -540,6 +545,7 @@ function install_airflow() {
540545
"${AIRFLOW_INSTALLATION_METHOD}[${AIRFLOW_EXTRAS}]${AIRFLOW_VERSION_SPECIFICATION}"
541546
# make sure correct PIP version is used
542547
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
548+
set +x
543549
echo
544550
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
545551
echo
@@ -568,18 +574,17 @@ set -euo pipefail
568574

569575
. "$( dirname "${BASH_SOURCE[0]}" )/common.sh"
570576

571-
572-
set -x
573-
574577
function install_additional_dependencies() {
575578
if [[ "${UPGRADE_TO_NEWER_DEPENDENCIES}" != "false" ]]; then
576579
echo
577580
echo "${COLOR_BLUE}Installing additional dependencies while upgrading to newer dependencies${COLOR_RESET}"
578581
echo
582+
set -x
579583
pip install --upgrade --upgrade-strategy eager \
580584
${ADDITIONAL_PYTHON_DEPS} ${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
581585
# make sure correct PIP version is used
582586
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
587+
set +x
583588
echo
584589
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
585590
echo
@@ -588,10 +593,12 @@ function install_additional_dependencies() {
588593
echo
589594
echo "${COLOR_BLUE}Installing additional dependencies upgrading only if needed${COLOR_RESET}"
590595
echo
596+
set -x
591597
pip install --upgrade --upgrade-strategy only-if-needed \
592598
${ADDITIONAL_PYTHON_DEPS}
593599
# make sure correct PIP version is used
594600
pip install --disable-pip-version-check "pip==${AIRFLOW_PIP_VERSION}"
601+
set +x
595602
echo
596603
echo "${COLOR_BLUE}Running 'pip check'${COLOR_RESET}"
597604
echo
@@ -1178,7 +1185,7 @@ ARG AIRFLOW_EXTRAS="all"
11781185
ARG ADDITIONAL_AIRFLOW_EXTRAS=""
11791186
# Allows to override constraints source
11801187
ARG CONSTRAINTS_GITHUB_REPOSITORY="apache/airflow"
1181-
ARG AIRFLOW_CONSTRAINTS="constraints"
1188+
ARG AIRFLOW_CONSTRAINTS_MODE="constraints-source-providers"
11821189
ARG AIRFLOW_CONSTRAINTS_REFERENCE=""
11831190
ARG AIRFLOW_CONSTRAINTS_LOCATION=""
11841191
ARG DEFAULT_CONSTRAINTS_BRANCH="constraints-main"
@@ -1207,7 +1214,7 @@ ENV AIRFLOW_REPO=${AIRFLOW_REPO}\
12071214
AIRFLOW_BRANCH=${AIRFLOW_BRANCH} \
12081215
AIRFLOW_EXTRAS=${AIRFLOW_EXTRAS}${ADDITIONAL_AIRFLOW_EXTRAS:+,}${ADDITIONAL_AIRFLOW_EXTRAS} \
12091216
CONSTRAINTS_GITHUB_REPOSITORY=${CONSTRAINTS_GITHUB_REPOSITORY} \
1210-
AIRFLOW_CONSTRAINTS=${AIRFLOW_CONSTRAINTS} \
1217+
AIRFLOW_CONSTRAINTS_MODE=${AIRFLOW_CONSTRAINTS_MODE} \
12111218
AIRFLOW_CONSTRAINTS_REFERENCE=${AIRFLOW_CONSTRAINTS_REFERENCE} \
12121219
AIRFLOW_CONSTRAINTS_LOCATION=${AIRFLOW_CONSTRAINTS_LOCATION} \
12131220
DEFAULT_CONSTRAINTS_BRANCH=${DEFAULT_CONSTRAINTS_BRANCH} \

0 commit comments

Comments
 (0)