| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d4b82a6 commit 68b7ba0
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -138,6 +138,33 @@ parameters: | |||
| 138 | 138 | - { tag: 'musllinux', arch: 'x86_64', platform: 'linux/amd64' } | |
| 139 | 139 | - { tag: 'musllinux', arch: 'aarch64', platform: 'linux/arm64' } | |
| 140 | 140 | ||
| 141 | + # ========================= | ||
| 142 | + # ODBC PACKAGE CONFIGURATIONS (mssql-python-odbc) | ||
| 143 | + # ========================= | ||
| 144 | + # The standalone mssql-python-odbc package ships ONLY pre-built ODBC driver | ||
| 145 | + # binaries (data) — there is NO compiled extension — so ONE py3-none-<platform> | ||
| 146 | + # wheel per platform serves every supported Python version. Hence there is no | ||
| 147 | + # per-Python matrix here: 7 wheels total (2 Windows + 1 macOS + 4 Linux). | ||
| 148 | + # These stages build alongside the mssql-python wheels and are consolidated | ||
| 149 | + # SEPARATELY (see the ConsolidateOdbc stage) so the release pipeline can publish | ||
| 150 | + # mssql-python and mssql-python-odbc independently. | ||
| 151 | + - name: odbcWindowsConfigs | ||
| 152 | + type: object | ||
| 153 | + default: | ||
| 154 | + - { arch: 'x64' } | ||
| 155 | + - { arch: 'arm64' } | ||
| 156 | + - name: odbcMacosConfigs | ||
| 157 | + type: object | ||
| 158 | + default: | ||
| 159 | + - { name: 'universal2' } | ||
| 160 | + - name: odbcLinuxConfigs | ||
| 161 | + type: object | ||
| 162 | + default: | ||
| 163 | + - { tag: 'manylinux_2_28', arch: 'x86_64', platform: 'linux/amd64' } | ||
| 164 | + - { tag: 'manylinux_2_28', arch: 'aarch64', platform: 'linux/arm64' } | ||
| 165 | + - { tag: 'musllinux', arch: 'x86_64', platform: 'linux/amd64' } | ||
| 166 | + - { tag: 'musllinux', arch: 'aarch64', platform: 'linux/arm64' } | ||
| 167 | + | ||
| 141 | 168 | # ========================= | |
| 142 | 169 | # PIPELINE VARIABLES | |
| 143 | 170 | # ========================= | |
@@ -338,8 +365,10 @@ extends: | |||
| 338 | 365 | # ========================= | |
| 339 | 366 | # PIPELINE STAGES | |
| 340 | 367 | # ========================= | |
| 341 | - # Total stages: 9 Windows + 5 macOS + 4 Linux + 1 Consolidate = 19 stages | ||
| 342 | - # Stages run in parallel (no dependencies between platform builds) | ||
| 368 | + # mssql-python: 9 Windows + 5 macOS + 4 Linux + 1 Consolidate = 19 stages | ||
| 369 | + # mssql-python-odbc: 2 Windows + 1 macOS + 4 Linux + 1 ConsolidateOdbc = 8 stages | ||
| 370 | + # Total: 27 stages. All build stages run in parallel; each Consolidate* stage | ||
| 371 | + # waits only on its own package's build stages. | ||
| 343 | 372 | stages: | |
| 344 | 373 | # ========================= | |
| 345 | 374 | # WINDOWS BUILD STAGES | |
@@ -466,3 +495,64 @@ extends: | |||
| 466 | 495 | ||
| 467 | 496 | # Note: Symbol publishing handled directly in Windows build stages | |
| 468 | 497 | # PDB files uploaded to Microsoft Symbol Server for debugging | |
| 498 | + | ||
| 499 | + # ========================================================================= | ||
| 500 | + # ODBC PACKAGE BUILD STAGES (mssql-python-odbc) | ||
| 501 | + # ========================================================================= | ||
| 502 | + # 7 data-only wheels (no native compile, no pytest) built from setup_odbc.py. | ||
| 503 | + # They run in parallel with the mssql-python stages and are consolidated by a | ||
| 504 | + # SEPARATE ConsolidateOdbc stage so the release pipeline can ship each package | ||
| 505 | + # independently. SDL "just works": these wheels contain the SAME ODBC driver | ||
| 506 | + # binaries already scanned in mssql_python/libs by the main build — no new | ||
| 507 | + # first-party native code is introduced. | ||
| 508 | + # | ||
| 509 | + # ODBC Windows stages (2): ODBC_Win_x64, ODBC_Win_arm64 | ||
| 510 | + - ${{ each config in parameters.odbcWindowsConfigs }}: | ||
| 511 | + - template: /OneBranchPipelines/stages/build-odbc-windows-stage.yml@self | ||
| 512 | + parameters: | ||
| 513 | + stageName: ODBC_Win_${{ config.arch }} | ||
| 514 | + jobName: BuildWheel | ||
| 515 | + architecture: ${{ config.arch }} | ||
| 516 | + oneBranchType: '${{ variables.effectiveOneBranchType }}' | ||
| 517 | + | ||
| 518 | + # ODBC macOS stage (1): ODBC_MacOS_universal2 | ||
| 519 | + - ${{ each config in parameters.odbcMacosConfigs }}: | ||
| 520 | + - template: /OneBranchPipelines/stages/build-odbc-macos-stage.yml@self | ||
| 521 | + parameters: | ||
| 522 | + stageName: ODBC_MacOS_${{ config.name }} | ||
| 523 | + jobName: BuildWheel | ||
| 524 | + oneBranchType: '${{ variables.effectiveOneBranchType }}' | ||
| 525 | + | ||
| 526 | + # ODBC Linux stages (4): manylinux_2_28 x86_64/aarch64, musllinux x86_64/aarch64 | ||
| 527 | + - ${{ each config in parameters.odbcLinuxConfigs }}: | ||
| 528 | + - template: /OneBranchPipelines/stages/build-odbc-linux-stage.yml@self | ||
| 529 | + parameters: | ||
| 530 | + stageName: ODBC_Linux_${{ config.tag }}_${{ config.arch }} | ||
| 531 | + jobName: BuildWheel | ||
| 532 | + linuxTag: ${{ config.tag }} | ||
| 533 | + arch: ${{ config.arch }} | ||
| 534 | + dockerPlatform: ${{ config.platform }} | ||
| 535 | + oneBranchType: '${{ variables.effectiveOneBranchType }}' | ||
| 536 | + | ||
| 537 | + # ========================================================================= | ||
| 538 | + # CONSOLIDATE ODBC STAGE | ||
| 539 | + # ========================================================================= | ||
| 540 | + # Collects the 7 mssql-python-odbc wheels into a single dist/ folder and | ||
| 541 | + # publishes them as `drop_ConsolidateOdbc_ConsolidateArtifacts` (distinct from | ||
| 542 | + # the mssql-python `drop_Consolidate_ConsolidateArtifacts`). The release | ||
| 543 | + # pipeline selects one artifact based on its `releasePackage` parameter. | ||
| 544 | + - stage: ConsolidateOdbc | ||
| 545 | + displayName: 'Consolidate All ODBC Artifacts' | ||
| 546 | + dependsOn: | ||
| 547 | + - ODBC_Win_x64 | ||
| 548 | + - ODBC_Win_arm64 | ||
| 549 | + - ODBC_MacOS_universal2 | ||
| 550 | + - ODBC_Linux_manylinux_2_28_x86_64 | ||
| 551 | + - ODBC_Linux_manylinux_2_28_aarch64 | ||
| 552 | + - ODBC_Linux_musllinux_x86_64 | ||
| 553 | + - ODBC_Linux_musllinux_aarch64 | ||
| 554 | + jobs: | ||
| 555 | + - template: /OneBranchPipelines/jobs/consolidate-odbc-artifacts-job.yml@self | ||
| 556 | + parameters: | ||
| 557 | + oneBranchType: '${{ variables.effectiveOneBranchType }}' | ||
| 558 | + expectedWheelCount: 7 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -64,5 +64,8 @@ jobs: | |||
| 64 | 64 | displayName: 'Publish Consolidated ODBC Artifacts' | |
| 65 | 65 | inputs: | |
| 66 | 66 | targetPath: '$(ob_outputDirectory)' | |
| 67 | - artifact: 'drop_Consolidate_ConsolidateArtifacts' | ||
| 67 | + # Distinct name so it does not collide with the mssql-python consolidate | ||
| 68 | + # artifact (drop_Consolidate_ConsolidateArtifacts) in the same build run. | ||
| 69 | + # Matches the OneBranch auto-name for a stage named `ConsolidateOdbc`. | ||
| 70 | + artifact: 'drop_ConsolidateOdbc_ConsolidateArtifacts' | ||
| 68 | 71 | publishLocation: 'pipeline' | |
| Back | FazBrowse Home | New Git URL |
0 commit comments