name: Build on: push jobs: cache: name: Cache runs-on: ubuntu-22.04 steps: - name: Cache permissions run: | sudo chown $(id -un) /var/cache/apt/archives - name: Cache packages uses: actions/cache@v4 with: path: /var/cache/apt/archives/*.deb key: apt-cache-${{ github.run_id }}-${{ github.run_attempt }} restore-keys: | apt-cache- - name: Download packages run: | sudo apt update sudo apt install -y -d -o Acquire::Retries=50 \ mtools syslinux isolinux \ libc6-dev-i386 valgrind \ gcc-arm-none-eabi gcc-aarch64-linux-gnu x86: name: x86 runs-on: ubuntu-22.04 needs: cache steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Cache permissions run: | sudo chown $(id -un) /var/cache/apt/archives - name: Cache packages uses: actions/cache/restore@v4 with: path: /var/cache/apt/archives/*.deb key: apt-cache-${{ github.run_id }}-${{ github.run_attempt }} - name: Install packages run: | sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y -o Acquire::Retries=50 \ mtools syslinux isolinux \ libc6-dev-i386 valgrind \ libgcc-s1:i386 libc6-dbg:i386 - 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-22.04 needs: cache steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Cache permissions run: | sudo chown $(id -un) /var/cache/apt/archives - name: Cache packages uses: actions/cache/restore@v4 with: path: /var/cache/apt/archives/*.deb key: apt-cache-${{ github.run_id }}-${{ github.run_attempt }} - 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-22.04 needs: cache steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Cache permissions run: | sudo chown $(id -un) /var/cache/apt/archives - name: Cache packages uses: actions/cache/restore@v4 with: path: /var/cache/apt/archives/*.deb key: apt-cache-${{ github.run_id }}-${{ github.run_attempt }} - 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