[ci] Cache downloaded packages for GitHub actions 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>
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6e18e3..85896f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml
@@ -4,14 +4,37 @@ jobs: + cache: + name: Cache + runs-on: ubuntu-22.04 + steps: + - name: Cache packages + uses: actions/cache@v3 + with: + path: /var/cache/apt/archives/*.deb + key: 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@v3 with: fetch-depth: 0 + - name: Cached packages + uses: actions/cache/restore@v3 + with: + path: /var/cache/apt/archives/*.deb + key: apt-cache - name: Install packages run: | sudo dpkg --add-architecture i386 @@ -33,11 +56,17 @@ arm32: name: ARM32 runs-on: ubuntu-22.04 + needs: cache steps: - name: Check out code uses: actions/checkout@v3 with: fetch-depth: 0 + - name: Cached packages + uses: actions/cache/restore@v3 + with: + path: /var/cache/apt/archives/*.deb + key: apt-cache - name: Install packages run: | sudo apt update @@ -53,11 +82,17 @@ arm64: name: ARM64 runs-on: ubuntu-22.04 + needs: cache steps: - name: Check out code uses: actions/checkout@v3 with: fetch-depth: 0 + - name: Cached packages + uses: actions/cache/restore@v3 + with: + path: /var/cache/apt/archives/*.deb + key: apt-cache - name: Install packages run: | sudo apt update