[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