Ubuntu-GCC5.yml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. ## @file
  2. # Azure Pipeline build file for building a platform.
  3. #
  4. # Platform: OVMF
  5. # OS: Ubuntu
  6. # Toolchain: GCC5
  7. #
  8. # Copyright (c) Microsoft Corporation.
  9. # SPDX-License-Identifier: BSD-2-Clause-Patent
  10. ##
  11. trigger:
  12. - master
  13. - stable/*
  14. pr:
  15. - master
  16. - stable/*
  17. jobs:
  18. - job: Platform_CI
  19. variables:
  20. package: 'OvmfPkg'
  21. vm_image: 'ubuntu-18.04'
  22. should_run: true
  23. run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE"
  24. #Use matrix to speed up the build process
  25. strategy:
  26. matrix:
  27. OVMF_IA32_DEBUG:
  28. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  29. Build.Arch: "IA32"
  30. Build.Flags: ""
  31. Build.Target: "DEBUG"
  32. Run.Flags: $(run_flags)
  33. Run: $(should_run)
  34. OVMF_IA32_RELEASE:
  35. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  36. Build.Arch: "IA32"
  37. Build.Flags: ""
  38. Build.Target: "RELEASE"
  39. Run.Flags: $(run_flags)
  40. Run: $(should_run)
  41. OVMF_IA32_NOOPT:
  42. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  43. Build.Arch: "IA32"
  44. Build.Flags: ""
  45. Build.Target: "NOOPT"
  46. Run.Flags: $(run_flags)
  47. Run: $(should_run)
  48. OVMF_X64_DEBUG:
  49. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  50. Build.Arch: "X64"
  51. Build.Flags: ""
  52. Build.Target: "DEBUG"
  53. Run.Flags: $(run_flags)
  54. Run: $(should_run)
  55. OVMF_X64_RELEASE:
  56. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  57. Build.Arch: "X64"
  58. Build.Flags: ""
  59. Build.Target: "RELEASE"
  60. Run.Flags: $(run_flags)
  61. Run: $(should_run)
  62. OVMF_X64_NOOPT:
  63. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  64. Build.Arch: "X64"
  65. Build.Flags: ""
  66. Build.Target: "NOOPT"
  67. Run.Flags: $(run_flags)
  68. Run: $(should_run)
  69. OVMF_IA32X64_DEBUG:
  70. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  71. Build.Arch: "IA32,X64"
  72. Build.Flags: ""
  73. Build.Target: "DEBUG"
  74. Run.Flags: $(run_flags)
  75. Run: $(should_run)
  76. OVMF_IA32X64_RELEASE:
  77. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  78. Build.Arch: "IA32,X64"
  79. Build.Flags: ""
  80. Build.Target: "RELEASE"
  81. Run.Flags: $(run_flags)
  82. Run: $(should_run)
  83. OVMF_IA32X64_NOOPT:
  84. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  85. Build.Arch: "IA32,X64"
  86. Build.Flags: ""
  87. Build.Target: "NOOPT"
  88. Run.Flags: $(run_flags)
  89. Run: $(should_run)
  90. OVMF_IA32X64_FULL_DEBUG:
  91. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  92. Build.Arch: "IA32,X64"
  93. Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
  94. Build.Target: "DEBUG"
  95. Run.Flags: $(run_flags)
  96. Run: $(should_run)
  97. OVMF_IA32X64_FULL_RELEASE:
  98. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  99. Build.Arch: "IA32,X64"
  100. Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
  101. Build.Target: "RELEASE"
  102. Run.Flags: $(run_flags)
  103. Run: $(should_run)
  104. OVMF_IA32X64_FULL_NOOPT:
  105. Build.File: "$(package)/PlatformCI/PlatformBuild.py"
  106. Build.Arch: "IA32,X64"
  107. Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
  108. Build.Target: "NOOPT"
  109. Run.Flags: $(run_flags)
  110. Run: $(should_run)
  111. AMDSEV_X64_DEBUG:
  112. Build.File: "$(package)/PlatformCI/AmdSevBuild.py"
  113. Build.Arch: "X64"
  114. Build.Flags: ""
  115. Build.Target: "DEBUG"
  116. # restricted + stripped down build
  117. # can't boot to uefi shell -> skip test
  118. Run.Flags: "QEMU_SKIP=TRUE"
  119. Run: $(should_run)
  120. BHYVE_X64_DEBUG:
  121. Build.File: "$(package)/PlatformCI/BhyveBuild.py"
  122. Build.Arch: "X64"
  123. Build.Flags: ""
  124. Build.Target: "DEBUG"
  125. # this build is for freebsd bhyve not qemu-kvm
  126. Run.Flags: "QEMU_SKIP=TRUE"
  127. Run: $(should_run)
  128. MICROVM_X64_DEBUG:
  129. Build.File: "$(package)/PlatformCI/MicrovmBuild.py"
  130. Build.Arch: "X64"
  131. Build.Flags: ""
  132. Build.Target: "DEBUG"
  133. # no storage supported by microvm build
  134. # can't boot to uefi shell -> skip test
  135. Run.Flags: "QEMU_SKIP=TRUE"
  136. Run: $(should_run)
  137. OVMF_XEN_X64_DEBUG:
  138. Build.File: "$(package)/PlatformCI/XenBuild.py"
  139. Build.Arch: "X64"
  140. Build.Flags: ""
  141. Build.Target: "DEBUG"
  142. # this build is for xen not qemu-kvm
  143. Run.Flags: "QEMU_SKIP=TRUE"
  144. Run: $(should_run)
  145. workspace:
  146. clean: all
  147. pool:
  148. vmImage: $(vm_image)
  149. steps:
  150. - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml
  151. parameters:
  152. tool_chain_tag: GCC5
  153. build_pkg: $(package)
  154. build_target: $(Build.Target)
  155. build_arch: $(Build.Arch)
  156. build_file: $(Build.File)
  157. build_flags: $(Build.Flags)
  158. run_flags: $(Run.Flags)
  159. extra_install_step:
  160. - bash: sudo apt-get install qemu
  161. displayName: Install qemu
  162. condition: and(gt(variables.pkg_count, 0), succeeded())