diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 04d9f4c8453..3f67f07261a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -644,131 +644,25 @@ jobs: displayName: 'Bash Script' -- job: BuildUbuntuXenial - displayName: Build Ubuntu Xenial Package - - dependsOn: BuildPythonWheel - condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DownloadPipelineArtifact@1 - displayName: 'Download Build Artifacts' - inputs: - TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' - artifactName: pypi - - - - task: Bash@3 - displayName: 'Build Ubuntu Xenial Package' - inputs: - targetType: 'filePath' - filePath: scripts/release/debian/pipeline.sh - env: - DISTRO: xenial - DISTRO_BASE_IMAGE: ubuntu:xenial - - - task: PublishPipelineArtifact@0 - displayName: 'Publish Artifact: debian' - inputs: - TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: ubuntu-xenial - -- job: BuildUbuntuTrusty - displayName: Build Ubuntu Trusty Package - - dependsOn: BuildPythonWheel - condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DownloadPipelineArtifact@1 - displayName: 'Download Build Artifacts' - inputs: - TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' - artifactName: pypi - - - - task: Bash@3 - displayName: 'Build Ubuntu Trusty Package' - inputs: - targetType: 'filePath' - filePath: scripts/release/debian/pipeline.sh - env: - DISTRO: trusty - DISTRO_BASE_IMAGE: ubuntu:trusty - - - - task: PublishPipelineArtifact@0 - displayName: 'Publish Artifact: debian' - inputs: - TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: ubuntu-trusty - -- job: BuildUbuntuBionic - displayName: Build Ubuntu Bionic Package - - dependsOn: BuildPythonWheel - condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DownloadPipelineArtifact@1 - displayName: 'Download Build Artifacts' - inputs: - TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' - artifactName: pypi - - - - task: Bash@3 - displayName: 'Build Ubuntu Bionic Package' - inputs: - targetType: 'filePath' - filePath: scripts/release/debian/pipeline.sh - env: - DISTRO: bionic - DISTRO_BASE_IMAGE: ubuntu:bionic - - - - task: PublishPipelineArtifact@0 - displayName: 'Publish Artifact: debian' - inputs: - TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: ubuntu-bionic - -- job: BuildUbuntuEoan - displayName: Build Ubuntu Eoan Package - - dependsOn: BuildPythonWheel - condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DownloadPipelineArtifact@1 - displayName: 'Download Build Artifacts' - inputs: - TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' - artifactName: pypi - - - bash: scripts/release/debian/pipeline.sh - displayName: 'Build Ubuntu Eoan Package' - env: - DISTRO: eoan - DISTRO_BASE_IMAGE: ubuntu:eoan - - - task: PublishPipelineArtifact@0 - displayName: 'Publish Artifact: debian' - inputs: - TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: ubuntu-eoan - -- job: BuildDebianJessie - displayName: Build Debian Jessie Package +- job: BuildUbuntuPackages + displayName: Build Ubuntu Packages dependsOn: BuildPythonWheel condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) pool: vmImage: 'ubuntu-16.04' + strategy: + matrix: + Xenial: + distro: xenial + Trusty: + distro: trusty + Bionic: + distro: bionic + Eoan: + distro: eoan + Focal: + distro: focal steps: - task: DownloadPipelineArtifact@1 displayName: 'Download Build Artifacts' @@ -776,29 +670,36 @@ jobs: TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' artifactName: pypi - - task: Bash@3 - displayName: 'Build Debian Jessie Package' + displayName: 'Build Ubuntu $(distro) Package' inputs: targetType: 'filePath' filePath: scripts/release/debian/pipeline.sh env: - DISTRO: jessie - DISTRO_BASE_IMAGE: debian:jessie + DISTRO: $(distro) + DISTRO_BASE_IMAGE: ubuntu:$(distro) - task: PublishPipelineArtifact@0 displayName: 'Publish Artifact: debian' inputs: TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: debian-jessie + ArtifactName: ubuntu-$(distro) -- job: BuildDebianStretch - displayName: Build Debian Stretch Package +- job: BuildDebianPackages + displayName: Build Debian Packages dependsOn: BuildPythonWheel condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) pool: vmImage: 'ubuntu-16.04' + strategy: + matrix: + Jessie: + distro: jessie + Stretch: + distro: stretch + Buster: + distro: buster steps: - task: DownloadPipelineArtifact@1 displayName: 'Download Build Artifacts' @@ -808,59 +709,26 @@ jobs: - task: Bash@3 - displayName: 'Build Debian Stretch Package' + displayName: 'Build Debian $(distro) Package' inputs: targetType: 'filePath' filePath: scripts/release/debian/pipeline.sh env: - DISTRO: stretch - DISTRO_BASE_IMAGE: debian:stretch + DISTRO: $(distro) + DISTRO_BASE_IMAGE: debian:$(distro) - task: PublishPipelineArtifact@0 displayName: 'Publish Artifact: debian' inputs: TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: debian-stretch + ArtifactName: debian-$(distro) -- job: BuildDebianBuster - displayName: Build Debian Buster Package - - dependsOn: BuildPythonWheel - condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DownloadPipelineArtifact@1 - displayName: 'Download Build Artifacts' - inputs: - TargetPath: '$(Build.ArtifactStagingDirectory)/pypi' - artifactName: pypi - - - task: Bash@3 - displayName: 'Build Debian Buster Package' - inputs: - targetType: 'filePath' - filePath: scripts/release/debian/pipeline.sh - env: - DISTRO: buster - DISTRO_BASE_IMAGE: debian:buster - - - task: PublishPipelineArtifact@0 - displayName: 'Publish Artifact: debian' - inputs: - TargetPath: $(Build.ArtifactStagingDirectory) - ArtifactName: debian-buster - -- job: TestLinuxPackages - displayName: Test Linux Packages +- job: TestDebPackages + displayName: Test Deb Packages dependsOn: - - BuildUbuntuXenial - - BuildUbuntuTrusty - - BuildUbuntuBionic - - BuildDebianJessie - - BuildDebianStretch - - BuildUbuntuEoan + - BuildUbuntuPackages + - BuildDebianPackages condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual')) pool: vmImage: 'ubuntu-16.04' @@ -871,7 +739,6 @@ jobs: TargetPath: '$(Build.ArtifactStagingDirectory)/metadata' artifactName: metadata - - task: DownloadPipelineArtifact@1 displayName: 'Download Debian:Stretch Build' inputs: @@ -896,27 +763,29 @@ jobs: TargetPath: '$(Build.ArtifactStagingDirectory)/debian' artifactName: ubuntu-bionic - - task: DownloadPipelineArtifact@1 displayName: 'Download Ubuntu:Xenial Builds' inputs: TargetPath: '$(Build.ArtifactStagingDirectory)/debian' artifactName: ubuntu-xenial - - task: DownloadPipelineArtifact@1 displayName: 'Download Ubuntu:Trusty Builds' inputs: TargetPath: '$(Build.ArtifactStagingDirectory)/debian' artifactName: ubuntu-trusty - - task: DownloadPipelineArtifact@1 displayName: 'Download Ubuntu:Eoan Builds' inputs: TargetPath: '$(Build.ArtifactStagingDirectory)/debian' artifactName: ubuntu-eoan + - task: DownloadPipelineArtifact@1 + displayName: 'Download Ubuntu:Focal Builds' + inputs: + TargetPath: '$(Build.ArtifactStagingDirectory)/debian' + artifactName: ubuntu-focal - bash: | set -exv @@ -938,8 +807,8 @@ jobs: done # Distros that do require libssl1.1 - DISTROS=(bionic eoan buster) - BASE_IMAGES=(ubuntu:bionic ubuntu:eoan debian:buster) + DISTROS=(bionic buster eoan focal) + BASE_IMAGES=(ubuntu:bionic debian:buster ubuntu:eoan ubuntu:focal) for i in ${!DISTROS[@]}; do echo "== Test debian package on ${DISTROS[$i]} ==" diff --git a/scripts/release/debian/pipeline.sh b/scripts/release/debian/pipeline.sh index 2c64eabdd77..83ba0c81eae 100755 --- a/scripts/release/debian/pipeline.sh +++ b/scripts/release/debian/pipeline.sh @@ -16,6 +16,7 @@ docker run --rm \ -v "$SYSTEM_ARTIFACTSDIRECTORY":/mnt/artifacts \ -e CLI_VERSION=$CLI_VERSION \ -e CLI_VERSION_REVISION=1~$DISTRO \ + -e DEBIAN_FRONTEND=noninteractive \ $DISTRO_BASE_IMAGE \ /mnt/repo/scripts/release/debian/build.sh