Publish package to more distros and refactoring (#4455)

* Publish package to more distros and refactoring

* fix?

* fix

* fix

* fix file dependencies

* fix

* fix

* fix

* fix
This commit is contained in:
Daiki AMINAKA 2024-08-14 13:56:37 -07:00 коммит произвёл GitHub
Родитель dd316f72d7
Коммит e58b38460b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
9 изменённых файлов: 195 добавлений и 184 удалений

Просмотреть файл

@ -78,10 +78,10 @@ extends:
- container: linux_build_container # Default container - container: linux_build_container # Default container
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross'
type: Linux type: Linux
- container: ubuntu_2204_cross - container: kernel5_15_cross
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross'
type: Linux type: Linux
- container: ubuntu_2404_cross - container: kernel6_8_cross
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross'
type: Linux type: Linux
@ -179,23 +179,23 @@ extends:
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Release config: Release
os: ubuntu_2204 kernel: "kernel5_15"
tls: openssl3 tls: openssl3
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Debug config: Debug
os: ubuntu_2204 kernel: "kernel5_15"
tls: openssl3 tls: openssl3
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Release config: Release
os: ubuntu_2404 kernel: "kernel6_8"
tls: openssl3 tls: openssl3
xdp: "-UseXdp" xdp: "-UseXdp"
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Debug config: Debug
os: ubuntu_2404 kernel: "kernel6_8"
tls: openssl3 tls: openssl3
xdp: "-UseXdp" xdp: "-UseXdp"

Просмотреть файл

@ -15,73 +15,78 @@ variables:
DisableDockerDetector: true DisableDockerDetector: true
parameters: parameters:
- name: opensslrpmcblrepos # build on ubuntu 20.04 openssl 1.1
- name: kernel5_4rpmcblrepos
type: object type: object
default: default:
- cbl-mariner-1.0-prod-Microsoft-x86_64-rpms-yum - cbl-mariner-1.0-prod-Microsoft-x86_64-rpms-yum
- cbl-mariner-2.0-prod-Microsoft-x86_64-yum - cbl-mariner-2.0-prod-Microsoft-x86_64-yum
- cbl-mariner-2.0-prod-Microsoft-aarch64-yum - cbl-mariner-2.0-prod-Microsoft-aarch64-yum
- name: opensslrpmrepos - name: kernel5_4rpmrepos
type: object type: object
default: default:
- microsoft-sles12-prod-yum - microsoft-sles12-prod-yum # 12 3.12
- microsoft-sles15-prod-yum - microsoft-sles15-prod-yum # 15 4.12
- microsoft-centos7-prod-yum - microsoft-centos7-prod-yum # 7 3.10
- microsoft-centos8-prod-yum - microsoft-centos8-prod-yum # 8 4.18
- microsoft-opensuse15-prod-yum - microsoft-opensuse15-prod-yum # 15 4.12
- microsoft-fedora32-prod-yum - microsoft-fedora32-prod-yum # 32 5.6
- microsoft-fedora33-prod-yum - microsoft-fedora33-prod-yum # 33 5.8
- microsoft-fedora34-prod-yum - microsoft-fedora34-prod-yum # 34 5.11
- microsoft-fedora37-prod-yum - microsoft-fedora35-prod-yum # 35 5.14
- microsoft-rhel7.3-prod-yum - microsoft-rhel7.3-prod-yum # 7.3 3.10
- microsoft-rhel8.0-prod-yum - microsoft-rhel8.0-prod-yum # 8.0 4.18
- microsoft-rhel8.1-prod-yum - microsoft-rhel8.1-prod-yum # 8.1 4.18
- name: openssldebrepos - name: kernel5_4debrepos
type: object type: object
default: default:
- microsoft-debian-stretch-prod-apt - microsoft-ubuntu-xenial-prod-apt # 16.04 4.4
- microsoft-debian-buster-prod-apt - microsoft-ubuntu-bionic-prod-apt # 18.04 4.15
- microsoft-debian-bullseye-prod-apt - microsoft-ubuntu-focal-prod-apt # 20.04 5.4
- name: openssl3debrepos - microsoft-ubuntu-groovy-prod-apt # 20.10 5.8
- microsoft-ubuntu-hirsute-prod-apt # 21.04 5.11
- microsoft-debian-stretch-prod-apt # 9 4.9
- microsoft-debian-buster-prod-apt # 10 4.19
- microsoft-debian-bullseye-prod-apt # 11 5.10
# built on ubuntu 22.04, openssl3
- name: kernel5_15rpmrepos
type: object type: object
default: default:
- microsoft-debian-bookworm-prod-apt - microsoft-fedora36-prod-yum # 36 5.17
- name: openssl3rpmrepos - microsoft-fedora37-prod-yum # 37 6.0
- microsoft-fedora38-prod-yum # 38 6.2
- microsoft-fedora39-prod-yum # 39 6.5
- microsoft-rhel9.0-prod-yum # 9.0 5.14
- name: kernel5_15debrepos
type: object type: object
default: default:
- microsoft-fedora36-prod-yum - microsoft-ubuntu-jammy-prod-apt # 22.04 5.15
- microsoft-fedora38-prod-yum - microsoft-ubuntu-kinetic-prod-apt # 22.10 5.19
- microsoft-fedora39-prod-yum - microsoft-ubuntu-lunar-prod-apt # 23.04 6.2
- microsoft-rhel9.0-prod-yum - microsoft-ubuntu-mantic-prod-apt # 23.10 6.5
- name: debug # debug mode will not actually upload and publish packages - microsoft-debian-bookworm-prod-apt # 12 6.1
type: boolean
default: false # built on ubuntu 24.04 openssl3 XDP
- name: ubuntu20repos - name: kernel6_8cblrpmrepos
type: object type: object
default: default:
- microsoft-ubuntu-xenial-prod-apt - azurelinux-3.0-prod-ms-oss-x86_64-yum # 3.0 6.6
- microsoft-ubuntu-bionic-prod-apt - name: kernel6_8rpmrepos
- microsoft-ubuntu-focal-prod-apt
- microsoft-ubuntu-groovy-prod-apt
- microsoft-ubuntu-hirsute-prod-apt
- name: ubuntu22repos
type: object type: object
default: default:
- microsoft-ubuntu-jammy-prod-apt - microsoft-fedora40-prod-yum # 40 6.8
- microsoft-ubuntu-kinetic-prod-apt - name: kernel6_8debrepos
- microsoft-ubuntu-lunar-prod-apt
- microsoft-ubuntu-mantic-prod-apt
- name: ubuntu24repos
type: object type: object
default: default:
- microsoft-ubuntu-noble-prod-apt - microsoft-ubuntu-noble-prod-apt # 24.04 6.8
stages: stages:
- stage: UploadPackage_stage - stage: UploadPackage_stage
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['Build.Reason'], 'Manual')) condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['Build.Reason'], 'Manual'))
jobs: jobs:
- job: UploadPackage_openssl_debs - job: UploadPackage_kernel5_4_debs
displayName: Upload openSSL based DEB packages to repos displayName: Upload kernel5_4 based DEB packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -98,20 +103,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2004_openssl artifact: drop_package_linux_distribution_kernel5_4
path: $(Build.SourcesDirectory)/artifacts/signed/openssl path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.openssldebrepos }}: - ${{ each repo in parameters.kernel5_4debrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/gen -r ${{ repo }} -n "*.deb" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/gen -r ${{ repo }} -n "*.deb"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_openssl_rpms - job: UploadPackage_kernel5_4_rpms
displayName: Upload openSSL based RPM packages to repos displayName: Upload kernel5_4 based RPM packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -128,20 +133,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2004_openssl artifact: drop_package_linux_distribution_kernel5_4
path: $(Build.SourcesDirectory)/artifacts/signed/openssl path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.opensslrpmrepos }}: - ${{ each repo in parameters.kernel5_4rpmrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/gen -r ${{ repo }} -n "*.rpm" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/gen -r ${{ repo }} -n "*.rpm"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_openssl_rpms_cbl - job: UploadPackage_kernel5_4_rpms_cbl
displayName: Upload openSSL based RPM packages to CBL repos displayName: Upload kernel5_4 based RPM packages to CBL repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -158,20 +163,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2004_openssl artifact: drop_package_linux_distribution_kernel5_4
path: $(Build.SourcesDirectory)/artifacts/signed/openssl path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_4
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.opensslrpmcblrepos }}: - ${{ each repo in parameters.kernel5_4rpmcblrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl/cbl -r ${{ repo }} -n "*.rpm" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_4/cbl -r ${{ repo }} -n "*.rpm"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_openssl3_debs - job: UploadPackage_kernel6_8_rpms_cbl
displayName: Upload openSSL3 based DEB packages to repos displayName: Upload kernel6_8 based RPM packages to CBL repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -188,20 +193,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 artifact: drop_package_linux_distribution_kernel6_8
path: $(Build.SourcesDirectory)/artifacts/signed/openssl3 path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.openssl3debrepos }}: - ${{ each repo in parameters.kernel6_8cblrpmrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl3/gen -r ${{ repo }} -n "*.deb" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/cbl -r ${{ repo }} -n "*.rpm"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_ubuntu20 - job: UploadPackage_kernel5_15_debs
displayName: Upload Ubuntu 20 packages to repos displayName: Upload kernel5_15 based DEB packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -218,20 +223,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2004_openssl artifact: drop_package_linux_distribution_kernel5_15
path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2004_openssl path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_15
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.ubuntu20repos }}: - ${{ each repo in parameters.kernel5_15debrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2004_openssl/gen -r ${{ repo }} -n "*.deb" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_15/gen -r ${{ repo }} -n "*.deb"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_ubuntu22 - job: UploadPackage_kernel6_8_debs
displayName: Upload Ubuntu 22 packages to repos displayName: Upload kernel6_8 based DEB packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -248,20 +253,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 artifact: drop_package_linux_distribution_kernel6_8
path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2204_openssl3 path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.ubuntu22repos }}: - ${{ each repo in parameters.kernel6_8debrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2204_openssl3/gen -r ${{ repo }} -n "*.deb" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/gen -r ${{ repo }} -n "*.deb"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_ubuntu24 - job: UploadPackage_kernel5_15_rpms
displayName: Upload Ubuntu 24 packages to repos displayName: Upload kernel5_15 based RPM packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -278,20 +283,20 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2404_openssl3 artifact: drop_package_linux_distribution_kernel5_15
path: $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2404_openssl3 path: $(Build.SourcesDirectory)/artifacts/signed/kernel5_15
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.ubuntu24repos }}: - ${{ each repo in parameters.kernel5_15rpmrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/ubuntu_2404_openssl3/gen -r ${{ repo }} -n "*.deb" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel5_15/gen -r ${{ repo }} -n "*.rpm"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true
- job: UploadPackage_openssl3_rpms - job: UploadPackage_kernel6_8_rpms
displayName: Upload openSSL3 based RPM packages to repos displayName: Upload kernel6_8 based RPM packages to repos
timeoutInMinutes: 120 timeoutInMinutes: 120
workspace: workspace:
clean: all clean: all
@ -308,15 +313,15 @@ stages:
preferTriggeringPipeline: true preferTriggeringPipeline: true
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
artifact: drop_package_linux_distribution_ubuntu_2204_openssl3 artifact: drop_package_linux_distribution_kernel6_8
path: $(Build.SourcesDirectory)/artifacts/signed/openssl3 path: $(Build.SourcesDirectory)/artifacts/signed/kernel6_8
- task: DownloadSecureFile@1 - task: DownloadSecureFile@1
name: pmcv4cert name: pmcv4cert
displayName: 'Download cert for PMC v4' displayName: 'Download cert for PMC v4'
inputs: inputs:
secureFile: 'auth.pem' secureFile: 'auth.pem'
- ${{ each repo in parameters.openssl3rpmrepos }}: - ${{ each repo in parameters.kernel6_8rpmrepos }}:
- script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/openssl3/gen -r ${{ repo }} -n "*.rpm" - script: bash scripts/upload-linux-packages.sh -i $(PMCv4ClientId) -c $(pmcv4cert.secureFilePath) -f $(Build.SourcesDirectory)/artifacts/signed/kernel6_8/gen -r ${{ repo }} -n "*.rpm"
condition: eq(${{ parameters.debug }}, false) condition: eq(${{ parameters.debug }}, false)
displayName: ${{ repo }} displayName: ${{ repo }}
continueOnError: true continueOnError: true

Просмотреть файл

@ -74,10 +74,10 @@ extends:
- container: linux_build_container # Default container - container: linux_build_container # Default container
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-20.04-cross'
type: Linux type: Linux
- container: ubuntu_2204_cross - container: kernel5_15_cross
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-22.04-cross'
type: Linux type: Linux
- container: ubuntu_2404_cross - container: kernel6_8_cross
image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross' image: 'ghcr.io/microsoft/msquic/linux-build-xcomp:ubuntu-24.04-cross'
type: Linux type: Linux
@ -175,23 +175,23 @@ extends:
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Release config: Release
os: ubuntu_2204 kernel: "kernel5_15"
tls: openssl3 tls: openssl3
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Debug config: Debug
os: ubuntu_2204 kernel: "kernel5_15"
tls: openssl3 tls: openssl3
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Release config: Release
os: ubuntu_2404 kernel: "kernel6_8"
tls: openssl3 tls: openssl3
xdp: "-UseXdp" xdp: "-UseXdp"
- template: .azure/obtemplates/build-linux.yml@self - template: .azure/obtemplates/build-linux.yml@self
parameters: parameters:
config: Debug config: Debug
os: ubuntu_2404 kernel: "kernel6_8"
tls: openssl3 tls: openssl3
xdp: "-UseXdp" xdp: "-UseXdp"

Просмотреть файл

@ -13,39 +13,39 @@ jobs:
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2004 kernel: kernel5_4
config: Release config: Release
tls: openssl tls: openssl
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2004 kernel: kernel5_4
config: Debug config: Debug
tls: openssl tls: openssl
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2204 kernel: kernel5_15
config: Release config: Release
tls: openssl3 tls: openssl3
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2204 kernel: kernel5_15
config: Debug config: Debug
tls: openssl3 tls: openssl3
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2404 kernel: kernel6_8
config: Release config: Release
tls: openssl3 tls: openssl3
- template: ./download-artifacts.yml - template: ./download-artifacts.yml
parameters: parameters:
platform: linux platform: linux
linuxos: ubuntu_2404 kernel: kernel6_8
config: Debug config: Debug
tls: openssl3 tls: openssl3

Просмотреть файл

@ -7,19 +7,16 @@ jobs:
strategy: strategy:
matrix: matrix:
ubuntu_2004: ubuntu_2004:
os: ubuntu_2004 kernel: "kernel5_4"
tls: openssl
ubuntu_2204: ubuntu_2204:
os: ubuntu_2204 kernel: "kernel5_15"
tls: openssl3
ubuntu_2404: ubuntu_2404:
os: ubuntu_2404 kernel: "kernel6_8"
tls: openssl3
pool: pool:
type: linux type: linux
variables: variables:
ob_outputDirectory: $(Build.SourcesDirectory)/artifacts/dist ob_outputDirectory: $(Build.SourcesDirectory)/artifacts/dist
ob_artifactSuffix: _$(os)_$(tls) ob_artifactSuffix: _$(kernel) # drop_package_linux_${{ jobname }}_${{ kernel }}
steps: steps:
- task: PowerShell@2 - task: PowerShell@2
displayName: Prepare Build Machine displayName: Prepare Build Machine
@ -29,12 +26,12 @@ jobs:
arguments: -ForContainerBuild arguments: -ForContainerBuild
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
inputs: inputs:
artifact: drop_build_linux_build_$(os)_$(tls)_Debug artifact: drop_build_linux_$(kernel)_Debug
path: $(Build.SourcesDirectory)/artifacts/bin/linux path: $(Build.SourcesDirectory)/artifacts/bin/linux
pattern: '*.tar' pattern: '*.tar'
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
inputs: inputs:
artifact: drop_build_linux_build_$(os)_$(tls)_Release artifact: drop_build_linux_$(kernel)_Release
path: $(Build.SourcesDirectory)/artifacts/bin/linux path: $(Build.SourcesDirectory)/artifacts/bin/linux
pattern: '*.tar' pattern: '*.tar'
- script: | # rebuild artifacts with correct permissions and symlink attributes. - script: | # rebuild artifacts with correct permissions and symlink attributes.
@ -46,7 +43,6 @@ jobs:
inputs: inputs:
pwsh: false pwsh: false
filePath: scripts/package-distribution.ps1 filePath: scripts/package-distribution.ps1
arguments: -OS $(os)
- script: | # prepare 2 sets of packages for signing with different keys (gen = general purpose, cbl = cbl-mariner) - script: | # prepare 2 sets of packages for signing with different keys (gen = general purpose, cbl = cbl-mariner)
mkdir $(Build.SourcesDirectory)/artifacts/dist/gen mkdir $(Build.SourcesDirectory)/artifacts/dist/gen
find $(Build.SourcesDirectory)/artifacts/dist -type f -exec mv -t $(Build.SourcesDirectory)/artifacts/dist/gen/ {} + find $(Build.SourcesDirectory)/artifacts/dist -type f -exec mv -t $(Build.SourcesDirectory)/artifacts/dist/gen/ {} +

Просмотреть файл

@ -2,12 +2,12 @@ parameters:
config: '' config: ''
tls: 'openssl' tls: 'openssl'
platform: 'linux' platform: 'linux'
os: 'ubuntu_2004' kernel: 'kernel5_4'
xdp: '' xdp: ''
jobs: jobs:
- job: build_${{ parameters.os }}_${{ parameters.tls }}_${{ parameters.config }} - job: ${{ parameters.kernel }}_${{ parameters.config }} # this job name becomes artifact suffix in the build pipeline
displayName: ${{ parameters.os }} ${{ parameters.tls }} ${{ parameters.config }} displayName: ${{ parameters.platform }} ${{ parameters.kernel }} ${{ parameters.tls }} ${{ parameters.config }}
pool: pool:
type: linux type: linux
variables: variables:
@ -17,48 +17,48 @@ jobs:
steps: steps:
- task: PowerShell@2 - task: PowerShell@2
displayName: Prepare Build Machine displayName: Prepare Build Machine
${{ if eq(parameters.os, 'ubuntu_2004') }}: ${{ if eq(parameters.kernel, 'kernel5_4') }}:
target: linux_build_container target: linux_build_container
${{ elseif eq(parameters.os, 'ubuntu_2204') }}: ${{ elseif eq(parameters.kernel, 'kernel5_15') }}:
target: ubuntu_2204_cross target: kernel5_15_cross
${{ else }}: ${{ else }}:
target: ubuntu_2404_cross target: kernel6_8_cross
inputs: inputs:
pwsh: true pwsh: true
filePath: scripts/prepare-machine.ps1 filePath: scripts/prepare-machine.ps1
arguments: -Tls ${{ parameters.tls }} -ForContainerBuild arguments: -Tls ${{ parameters.tls }} -ForContainerBuild
- task: PowerShell@2 - task: PowerShell@2
displayName: x64 displayName: x64
${{ if eq(parameters.os, 'ubuntu_2004') }}: ${{ if eq(parameters.kernel, 'kernel5_4') }}:
target: linux_build_container target: linux_build_container
${{ elseif eq(parameters.os, 'ubuntu_2204') }}: ${{ elseif eq(parameters.kernel, 'kernel5_15') }}:
target: ubuntu_2204_cross target: kernel5_15_cross
${{ else }}: ${{ else }}:
target: ubuntu_2404_cross target: kernel6_8_cross
inputs: inputs:
pwsh: true pwsh: true
filePath: scripts/build.ps1 filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} ${{ parameters.xdp }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} ${{ parameters.xdp }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease
- task: PowerShell@2 - task: PowerShell@2
displayName: arm64 displayName: arm64
${{ if eq(parameters.os, 'ubuntu_2004') }}: ${{ if eq(parameters.kernel, 'kernel5_4') }}:
target: linux_build_container target: linux_build_container
${{ elseif eq(parameters.os, 'ubuntu_2204') }}: ${{ elseif eq(parameters.kernel, 'kernel5_15') }}:
target: ubuntu_2204_cross target: kernel5_15_cross
${{ else }}: ${{ else }}:
target: ubuntu_2404_cross target: kernel6_8_cross
inputs: inputs:
pwsh: true pwsh: true
filePath: scripts/build.ps1 filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch arm64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch arm64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease
- task: PowerShell@2 - task: PowerShell@2
displayName: arm displayName: arm
${{ if eq(parameters.os, 'ubuntu_2004') }}: ${{ if eq(parameters.kernel, 'kernel5_4') }}:
target: linux_build_container target: linux_build_container
${{ elseif eq(parameters.os, 'ubuntu_2204') }}: ${{ elseif eq(parameters.kernel, 'kernel5_15') }}:
target: ubuntu_2204_cross target: kernel5_15_cross
${{ else }}: ${{ else }}:
target: ubuntu_2404_cross target: kernel6_8_cross
inputs: inputs:
pwsh: true pwsh: true
filePath: scripts/build.ps1 filePath: scripts/build.ps1

Просмотреть файл

@ -2,7 +2,7 @@
parameters: parameters:
platform: '' platform: ''
linuxos: 'ubuntu_2004' kernel: 'kernel5_4'
tls: '' tls: ''
config: '' config: ''
@ -16,7 +16,7 @@ steps:
runVersion: specific runVersion: specific
runId: $(resources.pipeline.onebranch.runID) runId: $(resources.pipeline.onebranch.runID)
${{ if eq(parameters.platform, 'linux') }}: ${{ if eq(parameters.platform, 'linux') }}:
artifact: drop_build_${{ parameters.platform }}_build_${{ parameters.linuxos }}_${{ parameters.tls }}_${{ parameters.config }} artifact: drop_build_${{ parameters.platform }}_${{ parameters.kernel }}_${{ parameters.config }}
${{ else }}: ${{ else }}:
artifact: drop_build_${{ parameters.platform }}_build_${{ parameters.platform }}_${{ parameters.tls }}_${{ parameters.config }} artifact: drop_build_${{ parameters.platform }}_build_${{ parameters.platform }}_${{ parameters.tls }}_${{ parameters.config }}
path: $(Build.SourcesDirectory)/artifacts/bin/${{ parameters.platform }} path: $(Build.SourcesDirectory)/artifacts/bin/${{ parameters.platform }}

Просмотреть файл

@ -141,7 +141,6 @@ mkdir -p ${OUTPUT}
if [ "$OS" == "linux" ]; then if [ "$OS" == "linux" ]; then
# XDP is only validated on Ubuntu 24.04 and x64 # XDP is only validated on Ubuntu 24.04 and x64
if [ "$XDP" == "False" ] || [[ "$ARCH" == arm* ]]; then if [ "$XDP" == "False" ] || [[ "$ARCH" == arm* ]]; then
echo "Building rpm package"
# RedHat/CentOS # RedHat/CentOS
FILES="${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}" FILES="${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
FILES="${FILES} ${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}" FILES="${FILES} ${ARTIFACTS}/libmsquic.${LIBEXT}.${VER_MAJOR}=/usr/${LIBDIR}/libmsquic.${LIBEXT}.${VER_MAJOR}"
@ -151,25 +150,51 @@ if [ "$OS" == "linux" ]; then
if [ "$PKGARCH" == 'aarch64' ] || [ "$PKGARCH" == 'x86_64' ]; then if [ "$PKGARCH" == 'aarch64' ] || [ "$PKGARCH" == 'x86_64' ]; then
BITS='64bit' BITS='64bit'
fi fi
fpm \ if [ "$XDP" == "True" ] && [[ "$ARCH" == x* ]]; then
--force \ echo "Building rpm package (XDP)"
--input-type dir \ fpm \
--output-type rpm \ --force \
--architecture ${PKGARCH} \ --input-type dir \
--name ${NAME} \ --output-type rpm \
--provides ${NAME} \ --architecture ${PKGARCH} \
--depends "libcrypto.so.${TLSVERSION}()(${BITS})" \ --name ${NAME} \
--depends "libnuma.so.1()(${BITS})" \ --provides ${NAME} \
--conflicts ${CONFLICTS} \ --depends "libcrypto.so.${TLSVERSION}()(${BITS})" \
--version ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} \ --depends "libnuma.so.1()(${BITS})" \
--description "${DESCRIPTION}" \ --depends "libxdp.so.1.4.0" \
--vendor "${VENDOR}" \ --depends "libnl-route-3.so.200" \
--maintainer "${MAINTAINER}" \ --conflicts ${CONFLICTS} \
--package "${OUTPUT}" \ --version ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} \
--license MIT \ --description "${DESCRIPTION}" \
--url https://github.com/microsoft/msquic \ --vendor "${VENDOR}" \
--log error \ --maintainer "${MAINTAINER}" \
${FILES} --package "${OUTPUT}" \
--license MIT \
--url https://github.com/microsoft/msquic \
--log error \
${FILES} ${ARTIFACTS}/datapath_raw_xdp_kern.o=/usr/${LIBDIR}/datapath_raw_xdp_kern.o
else
echo "Building rpm package"
fpm \
--force \
--input-type dir \
--output-type rpm \
--architecture ${PKGARCH} \
--name ${NAME} \
--provides ${NAME} \
--depends "libcrypto.so.${TLSVERSION}()(${BITS})" \
--depends "libnuma.so.1()(${BITS})" \
--conflicts ${CONFLICTS} \
--version ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} \
--description "${DESCRIPTION}" \
--vendor "${VENDOR}" \
--maintainer "${MAINTAINER}" \
--package "${OUTPUT}" \
--license MIT \
--url https://github.com/microsoft/msquic \
--log error \
${FILES}
fi
fi fi
# Debian/Ubuntu # Debian/Ubuntu

Просмотреть файл

@ -6,32 +6,6 @@
#> #>
param (
[Parameter(Mandatory = $false)]
[ValidateSet("ubuntu_2404", "ubuntu_2204", "ubuntu_2004", "ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04", "")]
[string]$OS = ""
)
# Convert GH Actions OS names to our internal names
if ($OS -eq "ubuntu-20.04") {
$OS = "ubuntu_2004"
}
if ($OS -eq "ubuntu-22.04") {
$OS = "ubuntu_2204"
}
if ($OS -eq "ubuntu-24.04") {
$OS = "ubuntu_2404"
}
$UseXdp = $false
$Time64Distro = $false
if ($OS -eq "ubuntu_2404") {
$UseXdp = $true
$Time64Distro = $true
}
Set-StrictMode -Version 'Latest' Set-StrictMode -Version 'Latest'
$PSDefaultParameterValues['*:ErrorAction'] = 'Stop' $PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
@ -141,6 +115,17 @@ foreach ($Build in $AllBuilds) {
$Libraries += Join-Path $ArtifactsDir "msquic.lib" $Libraries += Join-Path $ArtifactsDir "msquic.lib"
} }
# if datapath_raw_xdp_kern.o exists under $ArtifactsDir, $UseXdp to be true
$Time64Distro = $false
$UseXdp = $false
if ($Platform -eq "linux") {
$XdpBin = Join-Path $ArtifactsDir "datapath_raw_xdp_kern.o"
if (Test-Path $XdpBin) {
$UseXdp = $true
$Time64Distro = $true
}
}
# Copy items into temp folder that can be zipped in 1 command # Copy items into temp folder that can be zipped in 1 command
$IncludeDir = Join-Path $TempDir "include" $IncludeDir = Join-Path $TempDir "include"