]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[ci] Add GitHub action for build testing
authorMichael Brown <mcb30@ipxe.org>
Wed, 3 Feb 2021 16:06:35 +0000 (16:06 +0000)
committerMichael Brown <mcb30@ipxe.org>
Thu, 4 Feb 2021 16:41:55 +0000 (16:41 +0000)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
.github/workflows/build.yml [new file with mode: 0644]

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644 (file)
index 0000000..d890dfb
--- /dev/null
@@ -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