public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ardb@kernel.org>
To: Oliver Steffen <osteffen@redhat.com>
Cc: devel@edk2.groups.io, Andrew Fish <afish@apple.com>,
	 Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Bob Feng <bob.c.feng@intel.com>,  Dandan Bi <dandan.bi@intel.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	 Jian J Wang <jian.j.wang@intel.com>,
	Jiewen Yao <jiewen.yao@intel.com>,
	 Jordan Justen <jordan.l.justen@intel.com>,
	Leif Lindholm <quic_llindhol@quicinc.com>,
	 Liming Gao <gaoliming@byosoft.com.cn>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	 Michael Kubacki <mikuback@linux.microsoft.com>,
	Ray Ni <ray.ni@intel.com>,  Sami Mujawar <sami.mujawar@arm.com>,
	Sean Brogan <sean.brogan@microsoft.com>,
	 Yuwei Chen <yuwei.chen@intel.com>,
	Pawel Polawski <ppolawsk@redhat.com>,
	chris.fernald@outlook.com,
	 Chris Fernald <chfernal@microsoft.com>
Subject: Re: [PATCH v11 00/17] CI: Use Fedora 35 container for Linux jobs
Date: Tue, 17 Jan 2023 19:22:56 +0100	[thread overview]
Message-ID: <CAMj1kXE60cU6VjSSDNgeMYdEPML1xQYkM6m+6xaKAzzhLOswHQ@mail.gmail.com> (raw)
In-Reply-To: <20230116174044.3346383-1-osteffen@redhat.com>

On Mon, 16 Jan 2023 at 18:41, Oliver Steffen <osteffen@redhat.com> wrote:
>
> Update CI, run all Linux (aka Ubuntu-GCC5) based jobs in custom
> containers.  This decouples the CI environment from the virtual machine
> images that Azure DevOps provides.  The currently used ubuntu-18.04 image
> has been deprecated for a while now and will be removed soon.
>
> The container image provides the required compiler toolchains and Qemu
> for the supported architectures. These are then no longer downloaded at
> runtime, avoiding CI failures due to download errors. This approach also
> makes it easier to switch to other or newer compilers. It makes the CI
> setup independent from the default images that Azure DevOps provides.
> It can also help debugging CI problems, because the CI environment
> can be reproduced on a local machine.
>
> The container images are hosted on ghcr.io and are automatically
> generated using GitHub Actions. The Dockerfiles are maintained in the
> Tianocore "containers" repository:
> https://github.com/tianocore/containers.
>
> The current image is based on Fedora 35, with gcc 11. Fedora was chosen
> because of its fast release cycle which makes it easy to keep the
> toolchains up-to-date.
>
> Some further possible changes not included in this series:
> - The Tianocore/containers repository provides stack of layered images.
>   One image for general purpose (build+test) and build-only jobs.
>   The build+test image is based on the build-only one and adds Qemu,
>   for the testing job that involve Qemu.  The work in the image side
>   is done, we just need to change the CI setup accordingly.
>   This patch set uses the build+test images for all jobs.
> - Further reduce the number of external dependencies that need to be
>   downloaded at runtime. Candidates are iasl and nasm, which are already
>   included in the image but not used yet.
>
> PR: https://github.com/tianocore/edk2/pull/3904
>
> v11:
> - Rebase to current master branch
> - Use lasted image, includes Qemu 7.2
> - Set container image URL in a central place (the defaults.yml template)
>
> v10:
> - Split commits by package
> - Use ubuntu-22.04 as vm_image (instead of the floating ubuntu-latest)
> - Some fixups around the Python version template argument and defaults.yml
> - Fix some commit messages
> - Add license statement to defaults.yml
>
> v9:
> - Drop the "Don't install cspell" patch
> - Use explicitly use ubuntu-22.04 as vm_image
>
> v8:
> - Use updated container image that contains gcc for LoongArch64.
> - Remove ext_dep files for the LoongArch64 gcc.
> - Don't change the scopes in .pytool/CISettings.py if running Linux CI
>   it.
> - Split commits that touch multiple packages.
> - Use the smaller "build" image for jobs that allow it.
> - Add a CI template file as a central place to define the default Python version
>   and use it where needed.
>
> v7:
> - Rebase to latest master branch.
> - Use latest Fedora 35 CI image.
> - Stop using the ubuntu-18.04 vm_image since this will no longer be available
>   after Dec 1st.  Use ubuntu-latest instead.
>
> v6:
> - Include suggestions by Chris Fernald.
> - Added a parameter for the container image to the job template, makes usage
>   of containers optional.
> - Added a parameter to configure the Python version to download. Allows
>   using Python from the VM/container image also.
> - Restructure the commits (no further functional changes).
>
> v5:
> - Update image
>
> v4:
> - Use the latest image from the tianocode/containers repository which
>   - does not include acpica-tools
>   - includes Pyhton 3.10
>
> v3:
> - Use the latest image from the tianocode/containers repository which
>   pins down version numbers of gcc, iasl, and nasm in the Dockerfile.
>
> v2:
> - Images are now hosted under the Tianocore Organization
>   https://github.com/tianocore/containers
>
> v1:
> - Thread: https://edk2.groups.io/g/devel/message/89058
> - Images were hosted at https://github.com/osteffenrh/edk2-build-images
>
> Signed-off-by: Oliver Steffen <osteffen@redhat.com>
> Acked-by: Ard Biesheuvel <ardb@kernel.org>
> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Chris Fernald <chfernal@microsoft.com>
>
> Oliver Steffen (17):
>   CI: make Python version configurable
>   ArmVirtPkg: CI: use Python version from defaults template
>   EmulatorPkg: CI: use Python version from defaults template
>   OvmfPkg: CI: use Python version from defaults template
>   CI: add ~/.local/bin to PATH (Linux only)
>   CI: Allow running in a container.
>   CI: Use Fedora 35 container (Linux only)
>   ArmVirtPkg: CI: Use Fedora 35 container (Linux only)
>   EmulatorPkg: CI: Use Fedora 35 container (Linux only)
>   OvmfPkg: CI: Use Fedora 35 container (Linux only)
>   .pytool: CISettings.py: don't add scopes for GCC
>   BaseTools: remove ext_dep files for gcc
>   ArmVirtPkg: CI: use ubuntu-22.04 vm_image (Linux only)
>   EmulatorPgk: CI: use ubuntu-22.04 vm_image (Linux only)
>   OvmfPkg: CI: use ubuntu-22.04 vm_image (Linux only)
>   CI: use ubuntu-22.04 image (Linux only)

Thanks

I have created a PR here

https://github.com/tianocore/edk2/pull/3913

with all the acks added.

>   OfmvPkg: CI: Qemu tests: set CPU to Broadwell
>

... and I omitted this one (as discussed on the thread)


>  .azurepipelines/Ubuntu-GCC5.yml               | 12 +++++-----
>  .azurepipelines/Windows-VS2019.yml            |  4 ++++
>  .../templates/basetools-build-steps.yml       |  9 --------
>  .azurepipelines/templates/defaults.yml        | 12 ++++++++++
>  .../templates/platform-build-run-steps.yml    | 12 +++++++++-
>  .../templates/pr-gate-build-job.yml           |  6 +++++
>  .azurepipelines/templates/pr-gate-steps.yml   | 12 ++++++++--
>  .pytool/CISettings.py                         |  9 --------
>  .../.azurepipelines/Ubuntu-GCC5.yml           | 12 +++++-----
>  BaseTools/Bin/gcc_aarch64_linux_ext_dep.yaml  | 21 ------------------
>  BaseTools/Bin/gcc_arm_linux_ext_dep.yaml      | 21 ------------------
>  ...gcc_loongarch64_unknown_linux_ext_dep.yaml | 22 -------------------
>  .../Bin/gcc_riscv64_unknown_ext_dep.yaml      | 22 -------------------
>  .../.azurepipelines/Ubuntu-GCC5.yml           |  9 +++++++-
>  .../.azurepipelines/Windows-VS2019.yml        |  4 ++++
>  .../.azurepipelines/Ubuntu-GCC5.yml           | 12 +++++-----
>  .../.azurepipelines/Windows-VS2019.yml        |  5 +++++
>  OvmfPkg/PlatformCI/PlatformBuildLib.py        |  1 +
>  18 files changed, 82 insertions(+), 123 deletions(-)
>  create mode 100644 .azurepipelines/templates/defaults.yml
>  delete mode 100644 BaseTools/Bin/gcc_aarch64_linux_ext_dep.yaml
>  delete mode 100644 BaseTools/Bin/gcc_arm_linux_ext_dep.yaml
>  delete mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_dep.yaml
>  delete mode 100644 BaseTools/Bin/gcc_riscv64_unknown_ext_dep.yaml
>
> --
> 2.39.0
>

      parent reply	other threads:[~2023-01-17 18:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-16 17:40 [PATCH v11 00/17] CI: Use Fedora 35 container for Linux jobs Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 01/17] CI: make Python version configurable Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 02/17] ArmVirtPkg: CI: use Python version from defaults template Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 03/17] EmulatorPkg: " Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 04/17] OvmfPkg: " Oliver Steffen
2023-01-17  0:14   ` [edk2-devel] " Yao, Jiewen
2023-01-16 17:40 ` [PATCH v11 05/17] CI: add ~/.local/bin to PATH (Linux only) Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 06/17] CI: Allow running in a container Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 07/17] CI: Use Fedora 35 container (Linux only) Oliver Steffen
2023-01-17 17:27   ` Michael Kubacki
2023-01-16 17:40 ` [PATCH v11 08/17] ArmVirtPkg: " Oliver Steffen
2023-01-17 17:27   ` Michael Kubacki
2023-01-16 17:40 ` [PATCH v11 09/17] EmulatorPkg: " Oliver Steffen
2023-01-17 17:28   ` Michael Kubacki
2023-01-16 17:40 ` [PATCH v11 10/17] OvmfPkg: " Oliver Steffen
2023-01-17  0:14   ` [edk2-devel] " Yao, Jiewen
2023-01-17 17:28   ` Michael Kubacki
2023-01-16 17:40 ` [PATCH v11 11/17] .pytool: CISettings.py: don't add scopes for GCC Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 12/17] BaseTools: remove ext_dep files for gcc Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 13/17] ArmVirtPkg: CI: use ubuntu-22.04 vm_image (Linux only) Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 14/17] EmulatorPgk: " Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 15/17] OvmfPkg: " Oliver Steffen
2023-01-17  0:15   ` [edk2-devel] " Yao, Jiewen
2023-01-16 17:40 ` [PATCH v11 16/17] CI: use ubuntu-22.04 image " Oliver Steffen
2023-01-16 17:40 ` [PATCH v11 17/17] OfmvPkg: CI: Qemu tests: set CPU to Broadwell Oliver Steffen
2023-01-17  0:16   ` Yao, Jiewen
2023-01-17 10:37     ` [edk2-devel] " Oliver Steffen
2023-01-17 12:20       ` Yao, Jiewen
2023-01-17 12:38         ` Gerd Hoffmann
2023-01-17 14:49           ` Yao, Jiewen
2023-01-17 14:52             ` Oliver Steffen
2023-01-17 18:22 ` Ard Biesheuvel [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMj1kXE60cU6VjSSDNgeMYdEPML1xQYkM6m+6xaKAzzhLOswHQ@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox