[PATCH v2 0/3] gitlab-ci: Add jobs to build the EDK2 firmware binaries

Philippe Mathieu-Daudé posted 3 patches 4 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200107153154.21401-1-philmd@redhat.com
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Maintainers: "Philippe Mathieu-Daudé" <philmd@redhat.com>, Thomas Huth <thuth@redhat.com>, Laszlo Ersek <lersek@redhat.com>
.gitlab-ci-edk2.yml          | 58 ++++++++++++++++++++++++++++++++++++
.gitlab-ci.d/edk2/Dockerfile | 30 +++++++++++++++++++
.gitlab-ci.yml               |  3 ++
MAINTAINERS                  |  4 ++-
roms/edk2-funcs.sh           |  3 ++
5 files changed, 97 insertions(+), 1 deletion(-)
create mode 100644 .gitlab-ci-edk2.yml
create mode 100644 .gitlab-ci.d/edk2/Dockerfile
[PATCH v2 0/3] gitlab-ci: Add jobs to build the EDK2 firmware binaries
Posted by Philippe Mathieu-Daudé 4 years, 3 months ago
We provide the EDK2 firmware binaries in pc-bios/. When we
update the roms/edk2/ submodule, we need to rebuild the
firmware binaries.
To avoid the burden on a single developer, this series add
a GitLab job to generate reproducible EDK2 firmware binaries.

The job is only on specific conditions:
- roms/edk2/ is updated
- or the branch or tag start with 'edk2'
- or 'edk2' appears in last commit description

We won't use ccache to build the EDK2 firmwares, but the patch
was ready/tested so I'm including it.

The proposed procedure to update the EDK2 submodule is:

- add a commit to update roms/edk2/ submodule
- push to gitlab
- download generated artifacts (only available if job succeed)
- unzip the firmware binaries from the artifacts archive
- test the binaries
- add a commit with the binaries, referencing the ci job url.

Example of pipeline that built the edk2-stable201905 firmwares:
https://gitlab.com/philmd/qemu/pipelines/107553178
(the job is https://gitlab.com/philmd/qemu/-/jobs/395823729)

The first patch is already reviewed, but is a prerequisite to
use the Ubuntu docker image to build, so I included it.

Since v1 [*]
- split in 2 jobs: build docker image, build firmwares
  (this way we build the docker image once for all the
   subsequent jobs)
- addressed Laszlo comment (minor the 'git-submodule-update)

Regards,

Phil.

[*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg668432.html

Philippe Mathieu-Daudé (3):
  roms/edk2-funcs: Force softfloat ARM toolchain prefix on Debian
  gitlab-ci.yml: Add jobs to build EDK2 firmware binaries
  gitlab-ci-edk2.yml: Use ccache

 .gitlab-ci-edk2.yml          | 58 ++++++++++++++++++++++++++++++++++++
 .gitlab-ci.d/edk2/Dockerfile | 30 +++++++++++++++++++
 .gitlab-ci.yml               |  3 ++
 MAINTAINERS                  |  4 ++-
 roms/edk2-funcs.sh           |  3 ++
 5 files changed, 97 insertions(+), 1 deletion(-)
 create mode 100644 .gitlab-ci-edk2.yml
 create mode 100644 .gitlab-ci.d/edk2/Dockerfile

-- 
2.21.1