ncroxon / gnu-efi

Develop EFI applications for ARM-64, ARM-32, x86_64, IA-64 (IPF), IA-32 (x86), and MIPS platforms using the GNU toolchain and the EFI development environment.
GNU General Public License v2.0
49 stars 11 forks source link

Add GitHub Actions Linux/gcc and Windows/VS2022 CI builds #18

Closed pbatard closed 5 months ago

pbatard commented 5 months ago

Now that gnu-efi has moved to GitHub, and considering that gnu-efi should aim at being used by more than the Linux/gcc microcosm, we can start to leverage GitHub's facilities to provide Continuous Integration and testing for multiple toolchains, in order to detect potential regressions.

This patchset therefore adds the Visual Studio 2022 solution files, along with automated GitHub Actions CI builds for Linux/gcc and Windows/VS2022.

While we are at it, we also bridge some more differences that exist between EDK2 and gnu-efi regarding SMBIOS/AsciiStr.

Note that the mips64el and loongarch64 gcc builds are currently commented out, on account that support for loongarch64 has not yet been added to Ubuntu (and GitHub Actions uses Ubuntu as its base images for Linux) and that a regression was introduced for mips64el in recent gnu-efi commits (since mips64el does build properly in a separate branch of mine that filters out some of the commits that were applied since 3.0.16, but fails with latest... which is precisely the kind of regressions that having GitHub Actions CI would detect early).

You can see an example of the outcome of the CI builds at https://github.com/pbatard/gnu-efi-org/actions/runs/9001437514 (for gcc) and https://github.com/pbatard/gnu-efi-org/actions/runs/9001437516 (for VS2022).

pbatard commented 5 months ago

Thanks for integrating these changes. Note that you may need to enable Actions in the GitHub projects settings for GitHub Actions to work, as I am not seeing the Actions tab on the main gnu-efi project...

ncroxon commented 5 months ago

Pete, refresh, I enabled it.

pbatard commented 5 months ago

Yup, seeing it now. I guess that because you enabled it after you pushed these changes, you won't get an automated build for them. But you'll get one on any future commits you push to this repo.