Skip to content

Commit ea3bce1

Browse files
committed
CI: cache ngdevkit-toolchain deb for faster consumption
ngdevkit-toolchain is a very large package and fetching it from the GitHub network has significantly slowed down CI runs lately. So use a cache action to only fetch from launchpad when the package has changed in the PPA.
1 parent a0efc0a commit ea3bce1

2 files changed

Lines changed: 44 additions & 4 deletions

File tree

.github/workflows/build-and-publish.yaml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,31 @@ jobs:
1616
- name: Checkout
1717
uses: actions/checkout@v4
1818

19-
- name: Install dependencies
19+
- name: Set up Launchpad PPA
20+
id: launchpad_ppa
2021
run: |
2122
sudo add-apt-repository -y ppa:dciabrin/ngdevkit
2223
sudo apt-get update -y
23-
sudo apt-get install -y ngdevkit-toolchain python3 zip pkg-config
24+
toolchain_version=$(sudo apt-cache policy ngdevkit-toolchain | awk '/Candidate:/ {print $2}')
25+
arch=$(dpkg --print-architecture)
26+
echo "toolchain_deb=ngdevkit-toolchain_${toolchain_version}_${arch}.deb" >> "$GITHUB_OUTPUT"
27+
28+
- name: Cache ngdevkit-toolchain package
29+
uses: actions/cache@v5
30+
with:
31+
path: /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }}
32+
key: ${{ steps.launchpad_ppa.outputs.toolchain_deb }}
33+
34+
- name: Prepare cached dependency
35+
run: |
36+
if [ ! -f /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }} ]; then
37+
cd /tmp && sudo apt-get download ngdevkit-toolchain
38+
fi
39+
sudo cp /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }} /var/cache/apt/archives
40+
41+
- name: Install dependencies
42+
run: |
43+
sudo apt-get install -y ngdevkit-toolchain python3 zip pkg-config
2444
2545
- name: Build ngdevkit
2646
run: ./.github/scripts/build.sh

.github/workflows/build-tests.yaml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,31 @@ jobs:
1616
- name: Checkout
1717
uses: actions/checkout@v4
1818

19-
- name: Install dependencies
19+
- name: Set up Launchpad PPA
20+
id: launchpad_ppa
2021
run: |
2122
sudo add-apt-repository -y ppa:dciabrin/ngdevkit
2223
sudo apt-get update -y
23-
sudo apt-get install -y ngdevkit-toolchain python3 zip pkg-config
24+
toolchain_version=$(sudo apt-cache policy ngdevkit-toolchain | awk '/Candidate:/ {print $2}')
25+
arch=$(dpkg --print-architecture)
26+
echo "toolchain_deb=ngdevkit-toolchain_${toolchain_version}_${arch}.deb" >> "$GITHUB_OUTPUT"
27+
28+
- name: Cache ngdevkit-toolchain package
29+
uses: actions/cache@v5
30+
with:
31+
path: /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }}
32+
key: ${{ steps.launchpad_ppa.outputs.toolchain_deb }}
33+
34+
- name: Prepare cached dependency
35+
run: |
36+
if [ ! -f /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }} ]; then
37+
cd /tmp && sudo apt-get download ngdevkit-toolchain
38+
fi
39+
sudo cp /tmp/${{ steps.launchpad_ppa.outputs.toolchain_deb }} /var/cache/apt/archives
40+
41+
- name: Install dependencies
42+
run: |
43+
sudo apt-get install -y ngdevkit-toolchain python3 zip pkg-config
2444
2545
- name: Build ngdevkit
2646
run: ./.github/scripts/build.sh

0 commit comments

Comments
 (0)