microsoft/mu_tiano_platforms
Publicmirrored fromhttps://github.com/microsoft/mu_tiano_platformsAvailable
.azurepipelines/Release.yml
196lines · modecode
| 1 | ## @file |
| 2 | # Azure Pipeline build file to perform a release in this repo. |
| 3 | # |
| 4 | # Note: This file should be invoked immediately after a release has been published |
| 5 | # on GitHub. |
| 6 | # |
| 7 | # Copyright (c) Microsoft Corporation. |
| 8 | # SPDX-License-Identifier: BSD-2-Clause-Patent |
| 9 | ## |
| 10 | |
| 11 | trigger: none |
| 12 | pr: none |
| 13 | |
| 14 | resources: |
| 15 | repositories: |
| 16 | - repository: mu_devops |
| 17 | type: github |
| 18 | endpoint: microsoft |
| 19 | name: microsoft/mu_devops |
| 20 | ref: main |
| 21 | containers: |
| 22 | - container: linux-gcc |
| 23 | image: ghcr.io/microsoft/mu_devops/ubuntu-24-test:latest |
| 24 | options: --name mu_devops_build_container |
| 25 | |
| 26 | name: $(Date:yyyyMMdd)$(Rev:.r) Mu Tiano Platforms Release |
| 27 | |
| 28 | stages: |
| 29 | - stage: LinuxBuildQemuPlatforms |
| 30 | displayName: Build QEMU Platforms on Linux |
| 31 | |
| 32 | variables: |
| 33 | - group: tool-chain-ubuntu-gcc |
| 34 | |
| 35 | jobs: |
| 36 | - template: Platform-Build-Job.yml |
| 37 | parameters: |
| 38 | tool_chain_tag: 'GCC5' |
| 39 | vm_image: ubuntu-latest |
| 40 | os_type: Linux |
| 41 | container_image: linux-gcc |
| 42 | build_matrix: |
| 43 | QemuQ35_GCC_DEBUG: |
| 44 | BuildPackage: QemuQ35Pkg |
| 45 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 46 | BuildArch: IA32,X64 |
| 47 | BuildFlags: "" |
| 48 | BuildTarget: "DEBUG" |
| 49 | BuildExtraTag: "" |
| 50 | BuildExtraStep: |
| 51 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 52 | Run: true |
| 53 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE BLD_*_QEMU_CORE_NUM=2 TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 54 | BuildArtifactsBinary: | |
| 55 | **/QEMUQ35_*.fd |
| 56 | BuildArtifactsOther: "**/unit_test_results/*" |
| 57 | |
| 58 | QemuQ35_GCC_RELEASE: |
| 59 | BuildPackage: QemuQ35Pkg |
| 60 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 61 | BuildArch: IA32,X64 |
| 62 | BuildFlags: "" |
| 63 | BuildTarget: "RELEASE" |
| 64 | BuildExtraTag: "" |
| 65 | BuildExtraStep: |
| 66 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 67 | Run: true |
| 68 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE BLD_*_QEMU_CORE_NUM=2 TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 69 | BuildArtifactsBinary: | |
| 70 | **/QEMUQ35_*.fd |
| 71 | BuildArtifactsOther: "**/unit_test_results/*" |
| 72 | |
| 73 | QemuQ35_GCC_NO_SMM_RELEASE: |
| 74 | BuildPackage: QemuQ35Pkg |
| 75 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 76 | BuildArch: IA32,X64 |
| 77 | BuildFlags: "BLD_*_SMM_ENABLED=FALSE" |
| 78 | BuildTarget: "RELEASE" |
| 79 | BuildExtraTag: "NO_SMM" |
| 80 | BuildExtraStep: |
| 81 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 82 | Run: true |
| 83 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE BLD_*_QEMU_CORE_NUM=2 BLD_*_SMM_ENABLED=FALSE" |
| 84 | BuildArtifactsBinary: | |
| 85 | **/QEMUQ35_*.fd |
| 86 | BuildArtifactsOther: "" |
| 87 | |
| 88 | QemuSbsa_GCC_DEBUG: |
| 89 | BuildPackage: QemuSbsaPkg |
| 90 | BuildFile: "Platforms/QemuSbsaPkg/PlatformBuild.py" |
| 91 | BuildArch: AARCH64 |
| 92 | BuildFlags: "" |
| 93 | BuildTarget: "DEBUG" |
| 94 | BuildExtraTag: "" |
| 95 | BuildExtraStep: |
| 96 | - script: sudo apt-get install -y libssl-dev |
| 97 | displayName: Install openssl |
| 98 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 99 | Run: true |
| 100 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 101 | BuildArtifactsBinary: | |
| 102 | **/QEMU_EFI.fd |
| 103 | **/SECURE_FLASH0.fd |
| 104 | BuildArtifactsOther: "**/unit_test_results/*" |
| 105 | |
| 106 | QemuSbsa_GCC_RELEASE: |
| 107 | BuildPackage: QemuSbsaPkg |
| 108 | BuildFile: "Platforms/QemuSbsaPkg/PlatformBuild.py" |
| 109 | BuildArch: AARCH64 |
| 110 | BuildFlags: "" |
| 111 | BuildTarget: "RELEASE" |
| 112 | BuildExtraTag: "" |
| 113 | BuildExtraStep: |
| 114 | - script: sudo apt-get install -y libssl-dev |
| 115 | displayName: Install openssl |
| 116 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 117 | Run: true |
| 118 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 119 | BuildArtifactsBinary: | |
| 120 | **/QEMU_EFI.fd |
| 121 | **/SECURE_FLASH0.fd |
| 122 | BuildArtifactsOther: "**/unit_test_results/*" |
| 123 | |
| 124 | - stage: WindowsBuildQemuPlatforms |
| 125 | displayName: Build QEMU Platforms on Windows |
| 126 | dependsOn: [] |
| 127 | |
| 128 | variables: |
| 129 | - group: tool-chain-windows-visual-studio-latest |
| 130 | |
| 131 | jobs: |
| 132 | - template: Platform-Build-Job.yml |
| 133 | parameters: |
| 134 | extra_install_step: |
| 135 | - powershell: | |
| 136 | $qemuVersion = (Get-Content -Path WindowsQemuVersion.json | ConvertFrom-Json).version |
| 137 | choco install qemu --version=$qemuVersion; Write-Host "##vso[task.prependpath]c:\Program Files\qemu" |
| 138 | workingDirectory: .azurepipelines/ |
| 139 | displayName: Install QEMU and Set QEMU on path # friendly name displayed in the UI |
| 140 | condition: and(gt(variables.pkg_count, 0), succeeded()) |
| 141 | tool_chain_tag: 'VS2022' |
| 142 | vm_image: windows-latest |
| 143 | os_type: Windows_NT |
| 144 | build_matrix: |
| 145 | QemuQ35_VS_DEBUG: |
| 146 | BuildPackage: QemuQ35Pkg |
| 147 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 148 | BuildArch: IA32,X64 |
| 149 | BuildFlags: "" |
| 150 | BuildTarget: "DEBUG" |
| 151 | BuildExtraTag: "" |
| 152 | BuildExtraStep: |
| 153 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 154 | Run: true |
| 155 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE BLD_*_QEMU_CORE_NUM=2 TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 156 | BuildArtifactsBinary: | |
| 157 | **/QEMUQ35_*.fd |
| 158 | BuildArtifactsOther: "**/unit_test_results/*" |
| 159 | |
| 160 | QemuQ35_VS_RELEASE: |
| 161 | BuildPackage: QemuQ35Pkg |
| 162 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 163 | BuildArch: IA32,X64 |
| 164 | BuildFlags: "" |
| 165 | BuildTarget: "RELEASE" |
| 166 | BuildExtraTag: "" |
| 167 | BuildExtraStep: |
| 168 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 169 | Run: true |
| 170 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE EMPTY_DRIVE=TRUE BLD_*_QEMU_CORE_NUM=2 TEST_REGEX=*TestApp*.efi RUN_TESTS=TRUE" |
| 171 | BuildArtifactsBinary: | |
| 172 | **/QEMUQ35_*.fd |
| 173 | BuildArtifactsOther: "**/unit_test_results/*" |
| 174 | |
| 175 | QemuQ35_VS_NO_SMM_RELEASE: |
| 176 | BuildPackage: QemuQ35Pkg |
| 177 | BuildFile: "Platforms/QemuQ35Pkg/PlatformBuild.py" |
| 178 | BuildArch: IA32,X64 |
| 179 | BuildFlags: "BLD_*_SMM_ENABLED=FALSE" |
| 180 | BuildTarget: "RELEASE" |
| 181 | BuildExtraTag: "NO_SMM" |
| 182 | BuildExtraStep: |
| 183 | - template: Steps/RustSetupSteps.yml@mu_devops |
| 184 | Run: true |
| 185 | RunFlags: "SHUTDOWN_AFTER_RUN=TRUE QEMU_HEADLESS=TRUE BLD_*_QEMU_CORE_NUM=2 BLD_*_SMM_ENABLED=FALSE" |
| 186 | BuildArtifactsBinary: | |
| 187 | **/QEMUQ35_*.fd |
| 188 | BuildArtifactsOther: "" |
| 189 | |
| 190 | - stage: PublishReleaseArtifacts |
| 191 | displayName: Publish Release Artifacts |
| 192 | dependsOn: |
| 193 | - LinuxBuildQemuPlatforms |
| 194 | - WindowsBuildQemuPlatforms |
| 195 | jobs: |
| 196 | - template: templates/Job-Publish.yml |
| 197 | |