Similar to my comment about the assumption in use of python, I believe the container should be determined and passed in as a parameter from the top level pipeline file rather then relying on tool chain tag. This lets the templates take action on being containerized rather then assuming the tool chain. Additionally, this would give consistency between the platform and PR templates which currently make opposite assumption about consumer vs template determining the container image.

Chris Fernald
Microsoft

On 9/20/2022 7:45 AM, Oliver Steffen wrote:
Run all Linux based jobs in a container, using a custom Fedora 35 image
(gcc 11). The image is hosted on ghcr.io and the Dockerfiles are
here: https://github.com/tianocore/containers
The version numbers of gcc, iasl, and nasm are pinned to avoid
unintended upgrades during image rebuild.

Do not run apt-get in CI jobs to install qemu and gcc dependencies.
Assume the container image provides these.

Signed-off-by: Oliver Steffen <ostef...@redhat.com>
---
  .azurepipelines/templates/basetools-build-steps.yml    | 9 ---------
  .azurepipelines/templates/pr-gate-build-job.yml        | 3 +++
  ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml  | 6 ++----
  EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml | 2 ++
  OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml     | 6 ++----
  5 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/.azurepipelines/templates/basetools-build-steps.yml 
b/.azurepipelines/templates/basetools-build-steps.yml
index d8c108c6e212..a72758bc3395 100644
--- a/.azurepipelines/templates/basetools-build-steps.yml
+++ b/.azurepipelines/templates/basetools-build-steps.yml
@@ -10,15 +10,6 @@ parameters:
    tool_chain_tag: ''
steps:
-- ${{ if contains(parameters.tool_chain_tag, 'GCC') }}:
-  - bash: sudo apt-get update
-    displayName: Update apt
-    condition: and(gt(variables.pkg_count, 0), succeeded())
-
-  - bash: sudo apt-get install gcc g++ make uuid-dev
-    displayName: Install required tools
-    condition: and(gt(variables.pkg_count, 0), succeeded())
-
  - task: CmdLine@1
    displayName: Build Base Tools from source
    inputs:
diff --git a/.azurepipelines/templates/pr-gate-build-job.yml 
b/.azurepipelines/templates/pr-gate-build-job.yml
index 0e4ad019bf03..95ed03fb7e17 100644
--- a/.azurepipelines/templates/pr-gate-build-job.yml
+++ b/.azurepipelines/templates/pr-gate-build-job.yml
@@ -63,6 +63,9 @@ jobs:
    pool:
      vmImage: ${{ parameters.vm_image }}
+ ${{ if contains(parameters.tool_chain_tag, 'GCC') }}:
+    container: 'ghcr.io/tianocore/containers/fedora-35-test:46de622'
+
    steps:
    - template: pr-gate-steps.yml
      parameters:
diff --git a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml 
b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index b07e3199f143..664edbfc8053 100644
--- a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -75,6 +75,8 @@ jobs:
      pool:
        vmImage: $(vm_image)
+ container: 'ghcr.io/tianocore/containers/fedora-35-test:46de622'
+
      steps:
      - template: 
../../../.azurepipelines/templates/platform-build-run-steps.yml
        parameters:
@@ -85,7 +87,3 @@ jobs:
          build_file: $(Build.File)
          build_flags: $(Build.Flags)
          run_flags: $(Run.Flags)
-        extra_install_step:
-        - bash: sudo apt-get install qemu
-          displayName: Install qemu
-          condition: and(gt(variables.pkg_count, 0), succeeded())
diff --git a/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml 
b/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index 416c15e70840..9cda8d1fbf34 100644
--- a/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -75,6 +75,8 @@ jobs:
      pool:
        vmImage: $(vm_image)
+ container: 'ghcr.io/tianocore/containers/fedora-35-test:46de622'
+
      steps:
      - template: 
../../../.azurepipelines/templates/platform-build-run-steps.yml
        parameters:
diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml 
b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index 7160d95f7e04..9c49ce16fccc 100644
--- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -177,6 +177,8 @@ jobs:
      pool:
        vmImage: $(vm_image)
+ container: 'ghcr.io/tianocore/containers/fedora-35-test:46de622'
+
      steps:
      - template: 
../../../.azurepipelines/templates/platform-build-run-steps.yml
        parameters:
@@ -187,7 +189,3 @@ jobs:
          build_file: $(Build.File)
          build_flags: $(Build.Flags)
          run_flags: $(Run.Flags)
-        extra_install_step:
-        - bash: sudo apt-get install qemu
-          displayName: Install qemu
-          condition: and(gt(variables.pkg_count, 0), succeeded())


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#94063): https://edk2.groups.io/g/devel/message/94063
Mute This Topic: https://groups.io/mt/93805168/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to