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