[edk2-devel] [PATCH v5 3/4] CI: Use Fedora 35 container (Linux only)

Chris Fernald chris.fernald at outlook.com
Tue Sep 20 20:01:04 UTC 2022


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 <osteffen at 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 at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list