@@ -146,6 +146,7 @@ jobs:
146
146
mysql-exclude : ${{ steps.selective-checks.outputs.mysql-exclude }}
147
147
mssql-exclude : ${{ steps.selective-checks.outputs.mssql-exclude }}
148
148
sqlite-exclude : ${{ steps.selective-checks.outputs.sqlite-exclude }}
149
+ providers-package-format-exclude : ${{ steps.selective-checks.outputs.providers-package-format-exclude }}
149
150
run-tests : ${{ steps.selective-checks.outputs.run-tests }}
150
151
run-www-tests : ${{ steps.selective-checks.outputs.run-www-tests }}
151
152
run-kubernetes-tests : ${{ steps.selective-checks.outputs.run-kubernetes-tests }}
@@ -668,14 +669,21 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
668
669
run : breeze ci fix-ownership
669
670
if : always()
670
671
671
- prepare-test-provider-packages-wheel :
672
+ prepare-test-provider-packages :
672
673
timeout-minutes : 80
673
- name : " Build and test provider packages wheel "
674
+ name : " Provider packages ${{matrix.package-format}} "
674
675
runs-on : " ${{needs.build-info.outputs.runs-on}}"
675
676
needs : [build-info, wait-for-ci-images]
677
+ strategy :
678
+ matrix :
679
+ package-format : ["sdist", "wheel"]
680
+ exclude : " ${{fromJson(needs.build-info.outputs.providers-package-format-exclude)}}"
681
+ fail-fast : false
676
682
env :
677
683
RUNS_ON : " ${{needs.build-info.outputs.runs-on}}"
678
684
PYTHON_MAJOR_MINOR_VERSION : " ${{needs.build-info.outputs.default-python-version}}"
685
+ PACKAGE_FORMAT : " ${{matrix.package-format}}"
686
+ USE_AIRFLOW_VERSION : " ${{matrix.package-format}}"
679
687
if : needs.build-info.outputs.image-build == 'true' && needs.build-info.outputs.default-branch == 'main'
680
688
steps :
681
689
- name : Cleanup repo
@@ -684,96 +692,42 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
684
692
uses : actions/checkout@v3
685
693
with :
686
694
persist-credentials : false
687
- if : needs.build-info.outputs.default-branch == 'main'
688
695
- name : >
689
696
Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}}
690
697
uses: ./.github/actions/prepare_breeze_and_image
691
698
- name : " Cleanup dist files"
692
699
run : rm -fv ./dist/*
693
- - name : " Prepare provider documentation"
694
- run : breeze release-management prepare-provider-documentation --answer yes
695
- - name : " Prepare provider packages: wheel"
696
- run : >
697
- breeze release-management prepare-provider-packages
698
- --package-format wheel --version-suffix-for-pypi dev0
699
- - name : " Prepare airflow package: wheel"
700
- run : >
701
- breeze release-management prepare-airflow-package
702
- --package-format wheel --version-suffix-for-pypi dev0
703
- - name : " Install and test provider packages and airflow via wheel files"
704
- run : >
705
- breeze release-management verify-provider-packages
706
- --use-airflow-version wheel --use-packages-from-dist --package-format wheel
700
+ - name : " Prepare provider packages: ${{matrix.package-format}}"
701
+ run : breeze release-management prepare-provider-packages --version-suffix-for-pypi dev0
702
+ - name : " Prepare airflow package: ${{matrix.package-format}}"
703
+ run : breeze release-management prepare-airflow-package --version-suffix-for-pypi dev0
704
+ - name : " Verify wheel packages with twine"
705
+ run : pipx install twine && twine check dist/*.whl
706
+ if : matrix.package-format == 'wheel'
707
+ - name : " Verify sdist packages with twine"
708
+ run : pipx install twine && twine check dist/*.tgz
709
+ if : matrix.package-format == 'sdist'
710
+ - name : " Install and test provider packages and airflow via ${{matrix.package-format}} files"
711
+ run : breeze release-management verify-provider-packages --use-packages-from-dist
707
712
env :
708
713
SKIP_CONSTRAINTS : " ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}"
709
- - name : " Verify packages with twine"
710
- run : |
711
- pipx install twine
712
- twine check dist/*.whl
713
714
- name : " Remove airflow package and replace providers with 2.3-compliant versions"
714
715
run : |
715
- rm -vf dist/apache_airflow-*.whl \
716
- dist/apache_airflow_providers_docker*.whl
717
- pip download --no-deps --dest dist \
718
- apache-airflow-providers-docker==3.1.0
719
- - name : " Get all provider extras as AIRFLOW_EXTRAS evn variable"
716
+ rm -vf dist/apache_airflow-*.whl dist/apache_airflow_providers_docker*.whl
717
+ pip download --no-deps --dest dist apache-airflow-providers-docker==3.1.0
718
+ if : matrix.package-format == 'wheel'
719
+ - name : " Get all provider extras as AIRFLOW_EXTRAS env variable"
720
720
run : >
721
721
python -c 'from pathlib import Path; import json;
722
722
providers = json.loads(Path("generated/provider_dependencies.json").read_text());
723
723
provider_keys = ",".join(providers.keys());
724
724
print("AIRFLOW_EXTRAS={}".format(provider_keys))' >> $GITHUB_ENV
725
+ if : matrix.package-format == 'wheel'
725
726
- name : " Install and test provider packages and airflow on Airflow 2.3 files"
726
727
run : >
727
728
breeze release-management verify-provider-packages --use-airflow-version 2.3.0
728
- --use-packages-from-dist --package-format wheel --airflow-constraints-reference constraints-2.3.0
729
- - name : " Fix ownership"
730
- run : breeze ci fix-ownership
731
- if : always()
732
-
733
- prepare-test-provider-packages-sdist :
734
- timeout-minutes : 80
735
- name : " Build and test provider packages sdist"
736
- runs-on : " ${{needs.build-info.outputs.runs-on}}"
737
- needs : [build-info, wait-for-ci-images]
738
- env :
739
- RUNS_ON : " ${{needs.build-info.outputs.runs-on}}"
740
- PYTHON_MAJOR_MINOR_VERSION : " ${{needs.build-info.outputs.default-python-version}}"
741
- if : >
742
- needs.build-info.outputs.image-build == 'true' &&
743
- needs.build-info.outputs.default-branch == 'main' &&
744
- needs.build-info.outputs.canary-run == 'true'
745
- steps :
746
- - name : Cleanup repo
747
- run : docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
748
- - name : " Checkout ${{ github.ref }} ( ${{ github.sha }} )"
749
- uses : actions/checkout@v3
750
- with :
751
- persist-credentials : false
752
- - name : >
753
- Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}}
754
- uses: ./.github/actions/prepare_breeze_and_image
755
- - name : " Cleanup dist files"
756
- run : rm -fv ./dist/*
757
- - name : " Prepare provider packages: sdist"
758
- run : >
759
- breeze release-management prepare-provider-packages
760
- --package-format sdist --version-suffix-for-pypi dev0
761
- - name : " Prepare airflow package: sdist"
762
- run : >
763
- breeze release-management prepare-airflow-package
764
- --package-format sdist --version-suffix-for-pypi dev0
765
- - name : " Upload provider distribution artifacts"
766
- uses : actions/upload-artifact@v3
767
- with :
768
- name : airflow-provider-packages
769
- path : " ./dist/apache-airflow-providers-*.tar.gz"
770
- retention-days : 1
771
- - name : " Install and test provider packages and airflow via sdist files"
772
- run : >
773
- breeze release-management verify-provider-packages
774
- --use-airflow-version sdist --use-packages-from-dist --package-format sdist
775
- env :
776
- SKIP_CONSTRAINTS : " ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}"
729
+ --use-packages-from-dist --airflow-constraints-reference constraints-2.3.0
730
+ if : matrix.package-format == 'wheel'
777
731
- name : " Fix ownership"
778
732
run : breeze ci fix-ownership
779
733
if : always()
0 commit comments