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

potiuk 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 78df72b362a Fix --from-job parameter to be --from-run and update dev 
CI docs (#45324)
78df72b362a is described below

commit 78df72b362a147c9a42872c1067efec06ec02cc3
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Jan 1 12:24:31 2025 +0100

    Fix --from-job parameter to be --from-run and update dev CI docs (#45324)
    
    * Fix --from-job parameter to be --from-run and update dev CI docs
    
    I proposed `--from-job` parameter name and it was a mistake, it should
    be `--from-run` because we are reffering to a GitHub run not
    job within the run. I realized that when I wanted to review and update
    documentation about reproducing CI job locally - so this is done
    together.
    
    * Update dev/breeze/doc/ci/07_running_ci_locally.md
    
    Co-authored-by: Bugra Ozturk <[email protected]>
    
    * Update dev/breeze/doc/ci/07_running_ci_locally.md
    
    Co-authored-by: GPK <[email protected]>
    
    ---------
    
    Co-authored-by: Bugra Ozturk <[email protected]>
    Co-authored-by: GPK <[email protected]>
---
 dev/breeze/doc/06_managing_docker_images.rst       |   2 +-
 dev/breeze/doc/ci/07_running_ci_locally.md         | 114 +++++++++++++--------
 dev/breeze/doc/images/output_ci-image_load.svg     |   8 +-
 dev/breeze/doc/images/output_ci-image_load.txt     |   2 +-
 dev/breeze/doc/images/output_prod-image_load.svg   |   2 +-
 dev/breeze/doc/images/output_prod-image_load.txt   |   2 +-
 .../airflow_breeze/commands/ci_image_commands.py   |  10 +-
 .../commands/ci_image_commands_config.py           |   2 +-
 .../commands/common_image_options.py               |   8 +-
 .../commands/production_image_commands.py          |  10 +-
 .../commands/production_image_commands_config.py   |   2 +-
 11 files changed, 94 insertions(+), 68 deletions(-)

diff --git a/dev/breeze/doc/06_managing_docker_images.rst 
b/dev/breeze/doc/06_managing_docker_images.rst
index 624a2a6c1d6..ac0b0e6b1f6 100644
--- a/dev/breeze/doc/06_managing_docker_images.rst
+++ b/dev/breeze/doc/06_managing_docker_images.rst
@@ -126,7 +126,7 @@ To load the image from specific job run (for example 
12538475388), you can use t
 
 .. code-block:: bash
 
-     breeze ci-image load --from-job 12538475388 --python 3.9 --github-token 
<your_github_token>
+     breeze ci-image load --from-run 12538475388 --python 3.9 --github-token 
<your_github_token>
 
 After you load the image, you can reproduce the very exact environment that 
was used in the CI run by
 entering breeze container without mounting your local sources:
diff --git a/dev/breeze/doc/ci/07_running_ci_locally.md 
b/dev/breeze/doc/ci/07_running_ci_locally.md
index de33eacdb27..5f414667b01 100644
--- a/dev/breeze/doc/ci/07_running_ci_locally.md
+++ b/dev/breeze/doc/ci/07_running_ci_locally.md
@@ -23,11 +23,11 @@
 
 - [Running the CI Jobs locally](#running-the-ci-jobs-locally)
 - [Getting the CI image from failing 
job](#getting-the-ci-image-from-failing-job)
+- [Options and environment variables 
used](#options-and-environment-variables-used)
   - [Basic variables](#basic-variables)
-  - [Host & GIT variables](#host--git-variables)
+  - [Test variables](#test-variables)
   - [In-container environment 
initialization](#in-container-environment-initialization)
-- [Image build variables](#image-build-variables)
-- [Upgrade to newer dependencies](#upgrade-to-newer-dependencies)
+  - [Host & GIT variables](#host--git-variables)
 
 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
 
@@ -79,83 +79,109 @@ To load the image from specific PR, you can use the 
following command:
 breeze ci-image load --from-pr 12345 --python 3.9 --github-token 
<your_github_token>
 ```
 
-To load the image from specific job run (for example 12538475388),
+To load the image from specific run (for example 12538475388),
 you can use the following command, find the run id from github action runs.
 
 ```bash
-breeze ci-image load --from-job 12538475388 --python 3.9 --github-token 
<your_github_token>
+breeze ci-image load --from-run 12538475388 --python 3.9 --github-token 
<your_github_token>
 ```
 
 After you load the image, you can reproduce the very exact environment that 
was used in the CI run by
 entering breeze container without mounting your local sources:
 
 ```bash
-breeze shell --mount-sources skip [OTHER OPTIONS]
+breeze shell --mount-sources skip [OPTIONS]
 ```
 
 And you should be able to run any tests and commands interactively in the very 
exact environment that
 was used in the failing CI run even without checking out sources of the 
failing PR.
 This is a powerful tool to debug and fix CI issues.
 
+You can also build the image locally by checking-out the branch of the PR that 
was used and running:
+
+```bash
+breeze ci-image build
+```
+
+You have to be aware that some of the PRs and canary builds use the 
`--upgrade-to-newer-dependencies` flag
+(`UPGRADE_TO_NEWER_DEPENDENCIES` environment variable set to `true`) and they 
are not using constraints
+to build the image so if you want to build it locally, you should pass the 
`--upgrade-to-newer-dependencies`
+flag when you are building the image.
+
+Note however, that if constraints changed for regulare builds and if someone 
released a new package in PyPI
+since the build was run (which is very likely - we have many packages released 
a day), the image you
+build locally might be different than the one in CI, that's why loading image 
using `breeze ci-image load`
+is more reliable way to reproduce the CI build.
+
 If you check-out the branch of the PR that was used, regular ``breeze`` 
commands will
 also reproduce the CI environment without having to rebuild the image - for 
example when dependencies
 changed or when new dependencies were released and used in the CI job - and 
you will
-be able to edit source files locally as usual.
+be able to edit source files locally as usual and use your IDE and tools you 
usually use to develop Airflow.
 
+In order to reproduce the exact job you also need to set the "[OPTIONS]" 
corresponding to the particular
+job you want to reproduce within the run. You can find those in the logs of 
the CI job. Note that some
+of the options can be passed by `--flags` and some via environment variables, 
for convenience, so you should
+take a look at both if you want to be sure to reproduce the exact job 
configuration. See the next chapter
+for summary of the most important environment variables and options used in 
the CI jobs.
 
 You can read more about it in [Breeze](../README.rst) and 
[Testing](../../../../contributing-docs/09_testing.rst)
 
+# Options and environment variables used
+
 Depending whether the scripts are run locally via [Breeze](../README.rst) or 
whether they are run in
-`Build Images` or `Tests` workflows they can take different values.
+`Build Images` or `Tests` workflows can behave differently.
 
-You can use those variables when you try to reproduce the build locally
-(alternatively you can pass those via corresponding command line flags
-passed to `breeze shell` command.
+You can use those variables when you try to reproduce the build locally - 
alternatively you can pass
+those via corresponding command line flag passed to `breeze shell` command.
 
 ## Basic variables
 
-| Variable                    | Local dev | CI   | Comment                     
                                                 |
-|-----------------------------|-----------|------|------------------------------------------------------------------------------|
-| PYTHON_MAJOR_MINOR_VERSION  |           |      | Major/Minor version of 
Python used.                                          |
-| DB_RESET                    | false     | true | Determines whether database 
should be reset at the container entry.          |
-| ANSWER                      |           | yes  | This variable determines if 
answer to questions should be automatically set. |
+Those variables are controlling basic configuration and behaviour of the 
breeze command.
 
-## Host & GIT variables
+| Variable                   | Option                   | Local dev | CI   | 
Comment                                                                      |
+|----------------------------|--------------------------|-----------|------|------------------------------------------------------------------------------|
+| PYTHON_MAJOR_MINOR_VERSION | --python                 |           |      | 
Major/Minor version of Python used.                                          |
+| BACKEND                    | --backend                |           |      | 
Backend used in the tests.                                                   |
+| INTEGRATION                | --integration            |           |      | 
Integration used in tests.                                                   |
+| DB_RESET                   | --db-reset/--no-db-reset | false     | true | 
Determines whether database should be reset at the container entry.          |
+| ANSWER                     | --answer                 |           | yes  | 
This variable determines if answer to questions should be automatically set. |
+
+## Test variables
+
+Those variables are used to control the test execution.
+
+| Variable          | Option              | Local dev | CI                   | 
Comment                                   |
+|-------------------|---------------------|-----------|----------------------|-------------------------------------------|
+| RUN_DB_TESTS_ONLY | --run-db-tests-only |           | true in db tests     | 
Whether only db tests should be executed. |
+| SKIP_DB_TESTS     | --skip-db-tests     |           | true in non-db tests | 
Whether db tests should be skipped.       |
 
-| Variable          | Local dev | CI         | Comment                         
        |
-|-------------------|-----------|------------|-----------------------------------------|
-| HOST_USER_ID      | Host UID  |            | User id of the host user.       
        |
-| HOST_GROUP_ID     | Host GID  |            | Group id of the host user.      
        |
-| HOST_OS           | <from os> | linux      | OS of the Host 
(darwin/linux/windows).  |
-| COMMIT_SHA        |           | GITHUB_SHA | SHA of the commit of the build 
is run   |
 
 ## In-container environment initialization
 
-| Variable                        | Local dev | CI        | Comment            
                                                         |
-|---------------------------------|-----------|-----------|-----------------------------------------------------------------------------|
-| SKIP_ENVIRONMENT_INITIALIZATION | false (*) | false (*) | Skip 
initialization of test environment (*) set to true in pre-commits.     |
-| SKIP_IMAGE_UPGRADE_CHECK        | false (*) | false (*) | Skip checking if 
image should be upgraded (*) set to true in pre-commits.   |
-| SKIP_PROVIDERS_TESTS            | false     | false     | Skip running 
provider integration tests.                                    |
-| SKIP_SSH_SETUP                  | false     | false (*) | Skip setting up 
SSH server for tests. (*) set to true in GitHub CodeSpaces. |
-| VERBOSE_COMMANDS                | false     | false     | Whether every 
command executed in docker should be printed.                 |
+Those variables are used to control the initialization of the environment in 
the container.
+
+| Variable                        | Option                             | Local 
dev | CI        | Comment                                                       
              |
+|---------------------------------|------------------------------------|-----------|-----------|-----------------------------------------------------------------------------|
+| MOUNT_SOURCES                   | --mount-sources                    |       
    | skip      | Whether to mount the local sources into the container.        
              |
+| SKIP_ENVIRONMENT_INITIALIZATION | --skip-enviromnment-initialization | false 
(*) | false (*) | Skip initialization of test environment (*) set to true in 
pre-commits.     |
+| SKIP_IMAGE_UPGRADE_CHECK        | --skip-image-upgrade-check         | false 
(*) | false (*) | Skip checking if image should be upgraded (*) set to true in 
pre-commits.   |
+| SKIP_PROVIDERS_TESTS            |                                    | false 
    | false     | Skip running provider integration tests (in non-main branch). 
              |
+| SKIP_SSH_SETUP                  |                                    | false 
    | false (*) | Skip setting up SSH server for tests. (*) set to true in 
GitHub CodeSpaces. |
+| VERBOSE_COMMANDS                |                                    | false 
    | false     | Whether every command executed in docker should be printed.   
              |
 
-# Image build variables
+## Host & GIT variables
 
-| Variable                        | Local dev | CI        | Comment            
                                                |
-|---------------------------------|-----------|-----------|--------------------------------------------------------------------|
-| UPGRADE_TO_NEWER_DEPENDENCIES   | false     | false (*) | Whether 
dependencies should be upgraded. (*) set in CI when needed |
+Those variables are automatically set by Breeze when running the commands 
locally, but you can override them
+if you want to run the commands in a different environment.
 
-# Upgrade to newer dependencies
+| Variable      | Local dev | CI         | Comment                             
   |
+|---------------|-----------|------------|----------------------------------------|
+| HOST_USER_ID  | Host UID  |            | User id of the host user.           
   |
+| HOST_GROUP_ID | Host GID  |            | Group id of the host user.          
   |
+| HOST_OS       | <from os> | linux      | OS of the Host 
(darwin/linux/windows). |
+| COMMIT_SHA    |           | GITHUB_SHA | SHA of the commit of the build is 
run  |
 
-By default, we are using a tested set of dependency constraints stored in 
separated "orphan" branches of the airflow repository
-("constraints-main, "constraints-2-0") but when this flag is set to anything 
but false (for example random value),
-they are not used and "eager" upgrade strategy is used when installing 
dependencies. We set it to true in case of direct
-pushes (merges) to main and scheduled builds so that the constraints are 
tested. In those builds, in case we determine
-that the tests pass we automatically push latest set of "tested" constraints 
to the repository. Setting the value to random
-value is best way to assure that constraints are upgraded even if there is no 
change to pyproject.toml
-This way our constraints are automatically tested and updated whenever new 
versions of libraries are released.
-(*) true in case of direct pushes and scheduled builds
 
 ----
 
-**Thank you** for reading this far. We hope that you have learned a lot about 
Airflow's CI.
+**Thank you** for reading this far. We hope that you have learned a lot about 
Reproducing Airlfow's CI job locally and CI in general.
diff --git a/dev/breeze/doc/images/output_ci-image_load.svg 
b/dev/breeze/doc/images/output_ci-image_load.svg
index 9dc873546c0..962b9cb52c9 100644
--- a/dev/breeze/doc/images/output_ci-image_load.svg
+++ b/dev/breeze/doc/images/output_ci-image_load.svg
@@ -165,10 +165,10 @@
 </text><text class="breeze-ci-image-load-r5" x="0" y="410.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-16)">│</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="410.4" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-16)">https://github.com/settings/tokens/new?description=Read%20repo&amp;scopes=public_repo</text><text
 class="breeze-ci-image-load-r5" x="1451.8" y="410.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-16)">│</text><text clas [...]
 </text><text class="breeze-ci-image-load-r5" x="0" y="434.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-17)">│</text><text 
class="breeze-ci-image-load-r7" x="451.4" y="434.8" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-17)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-ci-image-load-r5" x="0" y="459.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-18)">│</text><text 
class="breeze-ci-image-load-r9" x="451.4" y="459.2" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-18)">[required]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-load-r5" x="0" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-19)">│</text><text 
class="breeze-ci-image-load-r4" x="61" y="483.6" textLength="122" 
clip-path="url(#breeze-ci-image-load-line-19)">--from-job</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="483.6" textLength="780.8" 
clip-path="url(#breeze-ci-image-load-line-19)">Optional&#160;run&#160;id&#160;of&#160;the&#160;github&#160;action&#160;job&#160;to&#160;load&#160
 [...]
-</text><text class="breeze-ci-image-load-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-20)">│</text><text 
class="breeze-ci-image-load-r4" x="61" y="508" textLength="109.8" 
clip-path="url(#breeze-ci-image-load-line-20)">--from-pr</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="508" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-20)">Optional&#160;pr&#160;number&#160;of&#160;the&#160;github&#160;action&#160;job&#160;to&#160;load&#160;t
 [...]
-</text><text class="breeze-ci-image-load-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-21)">│</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="532.4" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-21)">image&#160;from&#160;the&#160;latest&#160;job.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-load-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-22)">│</text><text 
class="breeze-ci-image-load-r7" x="451.4" y="556.8" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-22)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-ci-image-load-r5" x="0" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-19)">│</text><text 
class="breeze-ci-image-load-r4" x="61" y="483.6" textLength="109.8" 
clip-path="url(#breeze-ci-image-load-line-19)">--from-pr</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="483.6" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-19)">Optional&#160;pr&#160;number&#160;of&#160;the&#160;github&#160;action&#160;job&#160;to&#160;load&
 [...]
+</text><text class="breeze-ci-image-load-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-20)">│</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="508" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-20)">image&#160;from&#160;the&#160;latest&#160;job.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-ci-image-load-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-21)">│</text><text 
class="breeze-ci-image-load-r7" x="451.4" y="532.4" textLength="988.2" 
clip-path="url(#breeze-ci-image-load-line-21)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-ci-image-load-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-22)">│</text><text 
class="breeze-ci-image-load-r4" x="61" y="556.8" textLength="122" 
clip-path="url(#breeze-ci-image-load-line-22)">--from-run</text><text 
class="breeze-ci-image-load-r1" x="451.4" y="556.8" textLength="780.8" 
clip-path="url(#breeze-ci-image-load-line-22)">Optional&#160;run&#160;id&#160;of&#160;the&#160;github&#160;action&#160;run&#160;to&#160;load&#160
 [...]
 </text><text class="breeze-ci-image-load-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-23)">│</text><text 
class="breeze-ci-image-load-r4" x="61" y="581.2" textLength="317.2" 
clip-path="url(#breeze-ci-image-load-line-23)">--skip-image-file-deletion</text><text
 class="breeze-ci-image-load-r1" x="451.4" y="581.2" textLength="414.8" 
clip-path="url(#breeze-ci-image-load-line-23)">Skip&#160;image&#160;deletion&#160;after&#160;loading.</text><text
 class="breeze [...]
 </text><text class="breeze-ci-image-load-r5" x="0" y="605.6" textLength="1464" 
clip-path="url(#breeze-ci-image-load-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-load-r1" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-load-line-24)">
 </text><text class="breeze-ci-image-load-r5" x="0" y="630" textLength="24.4" 
clip-path="url(#breeze-ci-image-load-line-25)">╭─</text><text 
class="breeze-ci-image-load-r5" x="24.4" y="630" textLength="195.2" 
clip-path="url(#breeze-ci-image-load-line-25)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-image-load-r5" x="219.6" y="630" textLength="1220" 
clip-path="url(#breeze-ci-image-load-line-25)">───────────────────────────────────────────────────────────────────────────────
 [...]
diff --git a/dev/breeze/doc/images/output_ci-image_load.txt 
b/dev/breeze/doc/images/output_ci-image_load.txt
index 5d1ab347c45..98c197b6f7b 100644
--- a/dev/breeze/doc/images/output_ci-image_load.txt
+++ b/dev/breeze/doc/images/output_ci-image_load.txt
@@ -1 +1 @@
-31025e189ed595557884247d83aa9783
+4cf43760d7f83a9ffeea8af85e6e5426
diff --git a/dev/breeze/doc/images/output_prod-image_load.svg 
b/dev/breeze/doc/images/output_prod-image_load.svg
index 5531c40a07d..e967cd84814 100644
--- a/dev/breeze/doc/images/output_prod-image_load.svg
+++ b/dev/breeze/doc/images/output_prod-image_load.svg
@@ -153,7 +153,7 @@
 </text><text class="breeze-prod-image-load-r5" x="0" y="337.2" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-13)">│</text><text 
class="breeze-prod-image-load-r1" x="451.4" y="337.2" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-13)">https://github.com/settings/tokens/new?description=Read%20repo&amp;scopes=public_repo</text><text
 class="breeze-prod-image-load-r5" x="1451.8" y="337.2" textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-13)">│</tex [...]
 </text><text class="breeze-prod-image-load-r5" x="0" y="361.6" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-14)">│</text><text 
class="breeze-prod-image-load-r7" x="451.4" y="361.6" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-14)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-prod-image-load-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-15)">│</text><text 
class="breeze-prod-image-load-r9" x="451.4" y="386" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-15)">[required]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-prod-image-load-r5" x="0" y="410.4" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-16)">│</text><text 
class="breeze-prod-image-load-r4" x="61" y="410.4" textLength="122" 
clip-path="url(#breeze-prod-image-load-line-16)">--from-job</text><text 
class="breeze-prod-image-load-r1" x="451.4" y="410.4" textLength="780.8" 
clip-path="url(#breeze-prod-image-load-line-16)">Optional&#160;run&#160;id&#160;of&#160;the&#160;github&#160;action&#160;job&#160;to&#1
 [...]
+</text><text class="breeze-prod-image-load-r5" x="0" y="410.4" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-16)">│</text><text 
class="breeze-prod-image-load-r4" x="61" y="410.4" textLength="122" 
clip-path="url(#breeze-prod-image-load-line-16)">--from-run</text><text 
class="breeze-prod-image-load-r1" x="451.4" y="410.4" textLength="780.8" 
clip-path="url(#breeze-prod-image-load-line-16)">Optional&#160;run&#160;id&#160;of&#160;the&#160;github&#160;action&#160;run&#160;to&#1
 [...]
 </text><text class="breeze-prod-image-load-r5" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-17)">│</text><text 
class="breeze-prod-image-load-r4" x="61" y="434.8" textLength="109.8" 
clip-path="url(#breeze-prod-image-load-line-17)">--from-pr</text><text 
class="breeze-prod-image-load-r1" x="451.4" y="434.8" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-17)">Optional&#160;pr&#160;number&#160;of&#160;the&#160;github&#160;action&#160;job&#160;t
 [...]
 </text><text class="breeze-prod-image-load-r5" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-18)">│</text><text 
class="breeze-prod-image-load-r1" x="451.4" y="459.2" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-18)">image&#160;from&#160;the&#160;latest&#160;job.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-prod-image-load-r5" x="0" y="483.6" 
textLength="12.2" 
clip-path="url(#breeze-prod-image-load-line-19)">│</text><text 
class="breeze-prod-image-load-r7" x="451.4" y="483.6" textLength="988.2" 
clip-path="url(#breeze-prod-image-load-line-19)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
diff --git a/dev/breeze/doc/images/output_prod-image_load.txt 
b/dev/breeze/doc/images/output_prod-image_load.txt
index e8ade27f6f4..70a8c555ffc 100644
--- a/dev/breeze/doc/images/output_prod-image_load.txt
+++ b/dev/breeze/doc/images/output_prod-image_load.txt
@@ -1 +1 @@
-00dd027dac4b09f71ebd07ff826d43f7
+9c1eaead6434eb98d51302bc5cf471e3
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
index a4117a906e9..7c73009dd58 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
@@ -43,8 +43,8 @@ from airflow_breeze.commands.common_image_options import (
     option_dev_apt_deps,
     option_disable_airflow_repo_cache,
     option_docker_cache,
-    option_from_job,
     option_from_pr,
+    option_from_run,
     option_github_token_for_images,
     option_install_mysql_client_type,
     option_platform_multiple,
@@ -634,7 +634,7 @@ def save(
 @ci_image.command(name="load")
 @option_ci_image_file_to_load
 @option_dry_run
-@option_from_job
+@option_from_run
 @option_from_pr
 @option_github_repository
 @option_github_token_for_images
@@ -643,7 +643,7 @@ def save(
 @option_skip_image_file_deletion
 @option_verbose
 def load(
-    from_job: str | None,
+    from_run: str | None,
     from_pr: str | None,
     github_repository: str,
     github_token: str,
@@ -661,8 +661,8 @@ def load(
     escaped_platform = platform.replace("/", "_")
     path = f"/tmp/ci-image-save-{escaped_platform}-{python}.tar"
 
-    if from_job:
-        download_artifact_from_run_id(from_job, path, github_repository, 
github_token)
+    if from_run:
+        download_artifact_from_run_id(from_run, path, github_repository, 
github_token)
     elif from_pr:
         download_artifact_from_pr(from_pr, path, github_repository, 
github_token)
 
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py 
b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
index 85a6cd55114..298371393d8 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
@@ -186,8 +186,8 @@ CI_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str | 
list[str]]]] = {
                 "--image-file",
                 "--github-repository",
                 "--github-token",
-                "--from-job",
                 "--from-pr",
+                "--from-run",
                 "--skip-image-file-deletion",
             ],
         },
diff --git a/dev/breeze/src/airflow_breeze/commands/common_image_options.py 
b/dev/breeze/src/airflow_breeze/commands/common_image_options.py
index 6f1ca75f981..3508d310e10 100644
--- a/dev/breeze/src/airflow_breeze/commands/common_image_options.py
+++ b/dev/breeze/src/airflow_breeze/commands/common_image_options.py
@@ -189,12 +189,12 @@ option_skip_image_file_deletion = click.option(
     is_flag=True,
     envvar="SKIP_IMAGE_FILE_DELETION",
 )
-option_from_job = click.option(
-    "--from-job",
+option_from_run = click.option(
+    "--from-run",
     required=False,
     default="",
-    envvar="FROM_JOB",
-    help="Optional run id of the github action job to load the image from.",
+    envvar="FROM_RUN",
+    help="Optional run id of the github action run to load the image from.",
 )
 
 option_from_pr = click.option(
diff --git 
a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py 
b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
index 1f2a30468cb..96cdad3f091 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
@@ -39,8 +39,8 @@ from airflow_breeze.commands.common_image_options import (
     option_dev_apt_deps,
     option_disable_airflow_repo_cache,
     option_docker_cache,
-    option_from_job,
     option_from_pr,
+    option_from_run,
     option_github_token_for_images,
     option_install_mysql_client_type,
     option_platform_multiple,
@@ -648,7 +648,7 @@ def save(
 
 @prod_image.command(name="load")
 @option_dry_run
-@option_from_job
+@option_from_run
 @option_from_pr
 @option_github_repository
 @option_github_token_for_images
@@ -658,7 +658,7 @@ def save(
 @option_skip_image_file_deletion
 @option_verbose
 def load(
-    from_job: str | None,
+    from_run: str | None,
     from_pr: str | None,
     github_repository: str,
     github_token: str,
@@ -671,8 +671,8 @@ def load(
     perform_environment_checks()
     escaped_platform = platform.replace("/", "_")
     path = f"/tmp/prod-image-save-{escaped_platform}-{python}.tar"
-    if from_job:
-        download_artifact_from_run_id(from_job, path, github_repository, 
github_token)
+    if from_run:
+        download_artifact_from_run_id(from_run, path, github_repository, 
github_token)
     elif from_pr:
         download_artifact_from_pr(from_pr, path, github_repository, 
github_token)
     if not image_file:
diff --git 
a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py 
b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
index 19069a5fe80..afdb05ebc63 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
@@ -196,7 +196,7 @@ PRODUCTION_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, 
str | list[str]]]] =
                 "--image-file",
                 "--github-repository",
                 "--github-token",
-                "--from-job",
+                "--from-run",
                 "--from-pr",
                 "--skip-image-file-deletion",
             ],

Reply via email to