summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorMichael Brown2021-02-03 17:06:35 +0100
committerMichael Brown2021-02-04 17:41:55 +0100
commiteeca29a1e0e982870c00e82b2d2f19f379e675ce (patch)
treedf81e8c2e22a9c4fd20856596d4c6e8db7f4f227 /.github
parent[build] Work around distros that use -fcf-protection=full by default (diff)
downloadipxe-eeca29a1e0e982870c00e82b2d2f19f379e675ce.tar.gz
ipxe-eeca29a1e0e982870c00e82b2d2f19f379e675ce.tar.xz
ipxe-eeca29a1e0e982870c00e82b2d2f19f379e675ce.zip
[ci] Add GitHub action for build testing
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml69
1 files changed, 69 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..d890dfb1
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,69 @@
+name: Build
+
+on: push
+
+jobs:
+
+ x86:
+ name: x86
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Install packages
+ run: |
+ sudo apt update
+ sudo apt install -y -o Acquire::Retries=50 \
+ mtools syslinux isolinux libc6-dev-i386 valgrind
+ - name: Build (BIOS)
+ run: |
+ make -j 4 -C src
+ - name: Build (Everything)
+ run: |
+ make -j 4 -C src everything
+ - name: Test
+ run: |
+ valgrind ./src/bin-i386-linux/tests.linux
+ valgrind ./src/bin-x86_64-linux/tests.linux
+
+ arm32:
+ name: ARM32
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Install packages
+ run: |
+ sudo apt update
+ sudo apt install -y -o Acquire::Retries=50 \
+ mtools syslinux isolinux gcc-arm-none-eabi
+ - name: Build
+ run: |
+ make -j 4 -C src CROSS=arm-none-eabi- \
+ bin-arm32-efi/intel.efi \
+ bin-arm32-efi/intel.usb \
+ bin-arm32-efi/intel.iso
+
+ arm64:
+ name: ARM64
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Install packages
+ run: |
+ sudo apt update
+ sudo apt install -y -o Acquire::Retries=50 \
+ mtools syslinux isolinux gcc-aarch64-linux-gnu
+ - name: Build
+ run: |
+ make -j 4 -C src CROSS=aarch64-linux-gnu- \
+ bin-arm64-efi/ipxe.efi \
+ bin-arm64-efi/ipxe.usb \
+ bin-arm64-efi/ipxe.iso