potiuk edited a comment on pull request #12511:
URL: https://github.com/apache/airflow/pull/12511#issuecomment-731777833


   Proposal:
   
   In ci.yaml we have this: (added some comments):
   
   ```
     constraints-push:
         ......
          # here we have all the constrains generated in CI image in 
"artifacts" folder . So in case if 
          # "UPGRADE_TO_LATEST_CONSTRAINTS" was derived, we should get the new 
constraints here 
         - name: "Get all artifacts (constraints)"
           uses: actions/download-artifact@v2
           with:
             path: 'artifacts'
   
         # you can see how to retrieve the artifacts in the 
./scripts/ci/constraints/ci_commit_constraints.sh below
         # In order to build image with those new constraints you need to copy 
the constraints to "./docker-context-files" and 
         # set 
AIRFLOW_CONSTRAINTS_LOCATION="./docker-context-files/constraints-${PYTHON_MAJOR_MINOR_VERSION}"
 
         # This will build the production image with those new constraints and 
then you will be ablet to run `pip check`
   
        "Commit changed constraint files for 
${{needs.build-info.outputs.pythonVersions}}"
           run: ./scripts/ci/constraints/ci_commit_constraints.sh
   ```
   
   I think you will have to add a new matrix job (inject it before 'constraint 
push" and add the same prerequisites). Because we want to run `pip check` for 
all python versions. Current "constraint_push" 
   
   It should have likely few steps similar to those:
   ```
       env:
         - name: "Free space"
           run: ./scripts/ci/tools/ci_free_space_on_ci.sh
         - name: "Get all artifacts (constraints)"
           uses: actions/download-artifact@v2
           with:
             path: 'artifacts'
         - name: "Extract constraint files to ./docker-context-files
            run: .... # Here you need to copy the constraint files from 
"artifacts" . You want to copy only constraint files as "artifacts" will be far 
too big (and it takes a lot of time to upload big context to docker engine 
before the build)
   
         - name: "Build PROD images ${{ matrix.python-version }}:${{ 
github.event.workflow_run.id }}"
           run: ./scripts/ci/images/ci_prepare_prod_image_on_ci.sh
           env:  
              - AIRFLOW_CONSTRAINTS_LOCATION: 
"./docker-context-files/constraints-...."
         - name: "Run PIP check"
            run: ...
   ```
   
   Then you should make the "constraints-push" depend on the above job (and 
only this job).  This way we will only update the constraints in 
"constraints-master" branch when both CI tests passes, and `pip-check` passes.
   
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to