summaryrefslogtreecommitdiffstats
path: root/.github/workflows
Commit message (Collapse)AuthorAgeFilesLines
* [ci] Use prebuilt containers to build and test iPXEMichael Brown2026-01-251-97/+114
| | | | | | | | | | | | | | Use the prebuilt containers from https://github.com/ipxe/ipxe-builder to build BIOS, SBI, UEFI, and Linux userspace versions of iPXE for all supported CPU architectures, and to run the Linux userspace test suite (via valgrind or qemu as applicable). This reduces the time taken for GitHub CI runs by around 80%, while increasing the build coverage to include RISC-V SBI, RISC-V UEFI, and LoongArch64 UEFI, and increasing the test coverage to include running the Linux userspace test suite on all supported CPU architectures. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Do not use "git describe" to construct version numberMichael Brown2026-01-211-6/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | Using "git describe" to automatically construct the version number has caused more problems than it has solved. In particular, it causes errors when building from a shallow clone of the repository, which is a common scenario in modern automated build environments. Define the base version number (currently 1.21.1+) as a set of hardcoded constants within the Makefile, to be updated whenever a release is made. It is extremely useful to have the git commit ID present in the startup banner. End users tend to provide screenshots of failures, and having the commit ID printed at startup makes it trivial to identify which version of the code is in use. Identify the git version (if building from a git tree) by directly reading from .git/HEAD and associated files. This allows the git commit ID to potentially be included even if the build environment does not have the git tools installed. Use the default shallow clone in the GitHub Actions workflow, since we no longer require access to the full commit history. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Update to ubuntu-24.04 GitHub actions runnerMichael Brown2026-01-172-11/+13
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Update action versions to silence GitHub warningsMichael Brown2024-03-082-8/+8
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Work around Ubuntu packaging metadata issuesMichael Brown2023-05-151-1/+2
| | | | | | | | | | | | | The libc6-dbg:i386 package has spontaneously started failing to install from the Azure package repositories used by the GitHub Actions runners, with the somewhat recalcitrant error message: libc6:i386: Depends: libgcc-s1:i386 but it is not going to be installed Work around this unexplained issue by explicitly requesting installation of the libgcc-s1:i386 package. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Cache downloaded packages for GitHub actionsMichael Brown2023-02-061-0/+49
| | | | | | | | | | | Speed up the "Install packages" step for each CI run by caching the downloaded packages in /var/cache/apt. Do not include libc6-dbg:i386 within the cache, since apt seems to complain if asked to download both gcc-aarch64-linux-gnu and libc6-dbg:i386 at the same time. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Update to ubuntu-22.04 GitHub actions runnerMichael Brown2023-02-032-4/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Update to actions/checkout@v3 to silence GitHub warningsMichael Brown2023-02-032-4/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [linux] Use host glibc system call wrappersMichael Brown2021-03-011-1/+3
| | | | | | | | | | | | | | | | | | | | | | When building as a Linux userspace application, iPXE currently implements its own system calls to the host kernel rather than relying on the host's C library. The output binary is statically linked and has no external dependencies. This matches the general philosophy of other platforms on which iPXE runs, since there are no external libraries available on either BIOS or UEFI bare metal. However, it would be useful for the Linux userspace application to be able to link against host libraries such as libslirp. Modify the build process to perform a two-stage link: first picking out the requested objects in the usual way from blib.a but with relocations left present, then linking again with a helper object to create a standard hosted application. The helper object provides the standard main() entry point and wrappers for the Linux system calls required by the iPXE Linux drivers and interface code. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Disable redundant scheduled execution of Coverity ScanMichael Brown2021-02-051-2/+0Star
| | | | | | | The scheduled Coverity Scan run is triggered by an external mechanism that synchronises the coverity_scan branch with the master branch. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Add GitHub action for Coverity ScanMichael Brown2021-02-041-0/+39
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ci] Add GitHub action for build testingMichael Brown2021-02-041-0/+69
Signed-off-by: Michael Brown <mcb30@ipxe.org>