[edk2-devel] [PATCH v11 07/17] CI: Use Fedora 35 container (Linux only)

Oliver Steffen posted 17 patches 3 years ago
[edk2-devel] [PATCH v11 07/17] CI: Use Fedora 35 container (Linux only)
Posted by Oliver Steffen 3 years ago
Run all Linux based jobs in a container, using a custom Fedora 35 image
(gcc 11).  The image URL specified in the defaults.yml template, so that
all CI jobs can use it. 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.

Use Python from the container image, do not download at runtime.

Signed-off-by: Oliver Steffen <osteffen@redhat.com>
---
 .azurepipelines/Ubuntu-GCC5.yml                     | 3 ++-
 .azurepipelines/templates/basetools-build-steps.yml | 9 ---------
 .azurepipelines/templates/defaults.yml              | 1 +
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml
index 4ed6cb601b8e..246e2d272e20 100644
--- a/.azurepipelines/Ubuntu-GCC5.yml
+++ b/.azurepipelines/Ubuntu-GCC5.yml
@@ -21,6 +21,7 @@ jobs:
   parameters:
     tool_chain_tag: 'GCC5'
     vm_image: 'ubuntu-latest'
+    container: ${{ variables.default_linux_image }}
     arch_list: "IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64"
-    usePythonVersion: ${{ variables.default_python_version }}
+    usePythonVersion: ''  # use Python from the container image
 
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/defaults.yml b/.azurepipelines/templates/defaults.yml
index b4909448bdea..74d6b417839d 100644
--- a/.azurepipelines/templates/defaults.yml
+++ b/.azurepipelines/templates/defaults.yml
@@ -9,3 +9,4 @@
 
 variables:
   default_python_version: ">=3.10.6"
+  default_linux_image: "ghcr.io/tianocore/containers/fedora-35-test:47addc9"
-- 
2.39.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98586): https://edk2.groups.io/g/devel/message/98586
Mute This Topic: https://groups.io/mt/96311842/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v11 07/17] CI: Use Fedora 35 container (Linux only)
Posted by Michael Kubacki 3 years ago
Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com>

On 1/16/2023 12:40 PM, Oliver Steffen wrote:
> Run all Linux based jobs in a container, using a custom Fedora 35 image
> (gcc 11).  The image URL specified in the defaults.yml template, so that
> all CI jobs can use it. 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.
> 
> Use Python from the container image, do not download at runtime.
> 
> Signed-off-by: Oliver Steffen <osteffen@redhat.com>
> ---
>   .azurepipelines/Ubuntu-GCC5.yml                     | 3 ++-
>   .azurepipelines/templates/basetools-build-steps.yml | 9 ---------
>   .azurepipelines/templates/defaults.yml              | 1 +
>   3 files changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml
> index 4ed6cb601b8e..246e2d272e20 100644
> --- a/.azurepipelines/Ubuntu-GCC5.yml
> +++ b/.azurepipelines/Ubuntu-GCC5.yml
> @@ -21,6 +21,7 @@ jobs:
>     parameters:
>       tool_chain_tag: 'GCC5'
>       vm_image: 'ubuntu-latest'
> +    container: ${{ variables.default_linux_image }}
>       arch_list: "IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64"
> -    usePythonVersion: ${{ variables.default_python_version }}
> +    usePythonVersion: ''  # use Python from the container image
>   
> 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/defaults.yml b/.azurepipelines/templates/defaults.yml
> index b4909448bdea..74d6b417839d 100644
> --- a/.azurepipelines/templates/defaults.yml
> +++ b/.azurepipelines/templates/defaults.yml
> @@ -9,3 +9,4 @@
>   
>   variables:
>     default_python_version: ">=3.10.6"
> +  default_linux_image: "ghcr.io/tianocore/containers/fedora-35-test:47addc9"


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98719): https://edk2.groups.io/g/devel/message/98719
Mute This Topic: https://groups.io/mt/96311842/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-