Skip to content

Commit 0b9c97e

Browse files
committed
CI: Optimize download of rootfs by caching it and reusing.
1 parent 75b697f commit 0b9c97e

1 file changed

Lines changed: 49 additions & 9 deletions

File tree

.github/workflows/main.yml

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,23 @@ on:
1010
workflow_dispatch:
1111

1212
jobs:
13+
# Stage 1: Download root fs for test suite
14+
rootfs:
15+
runs-on: ubuntu-24.04
16+
name: Cache rootfs
17+
steps:
18+
- name: Restore cached file
19+
uses: actions/cache@v5
20+
id: cache
21+
with:
22+
path: rootfs.tar.gz
23+
key: rootfs-v1
24+
- name: Download if missing
25+
if: steps.cache.outputs.cache-hit != 'true'
26+
run: wget -q https://code.phreaknet.org/bbs/rootfs.tar.gz
27+
# Stage 2: Actual Builds
1328
ubuntu-latest:
29+
needs: rootfs
1430
runs-on: ubuntu-24.04
1531
name: Ubuntu 24.04
1632
steps:
@@ -27,13 +43,20 @@ jobs:
2743
sudo make install
2844
sudo make samples
2945
sudo make tests
30-
- name: Run tests
46+
- name: Fetch rootfs
47+
uses: actions/cache@v5
48+
with:
49+
path: rootfs.tar.gz
50+
key: rootfs-v1
51+
- name: Install rootfs
3152
run: |
3253
# rootfs needed for test_paging
33-
( cd /var/lib/lbbs && sudo wget -q https://code.phreaknet.org/bbs/rootfs.tar.gz && sudo tar -xzf rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
54+
( cd /var/lib/lbbs && sudo tar -xzf $GITHUB_WORKSPACE/rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
3455
ls -la /var/lib/lbbs/rootfs
35-
sudo scripts/run_tests.sh
56+
- name: Run tests
57+
run: sudo scripts/run_tests.sh
3658
ubuntu-stable:
59+
needs: rootfs
3760
runs-on: ubuntu-22.04
3861
name: Ubuntu 22.04
3962
steps:
@@ -50,10 +73,18 @@ jobs:
5073
sudo make install
5174
sudo make samples
5275
sudo make tests
53-
- name: Run tests
76+
- name: Fetch rootfs
77+
uses: actions/cache@v5
78+
with:
79+
path: rootfs.tar.gz
80+
key: rootfs-v1
81+
- name: Install rootfs
5482
run: |
55-
( cd /var/lib/lbbs && sudo wget -q https://code.phreaknet.org/bbs/rootfs.tar.gz && sudo tar -xzf rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
56-
sudo IGNORE_LIBBFD_MEMORY_LEAK_BUGS=1 scripts/run_tests.sh
83+
# rootfs needed for test_paging
84+
( cd /var/lib/lbbs && sudo tar -xzf $GITHUB_WORKSPACE/rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
85+
ls -la /var/lib/lbbs/rootfs
86+
- name: Run tests
87+
run: sudo IGNORE_LIBBFD_MEMORY_LEAK_BUGS=1 scripts/run_tests.sh
5788
without-optimization:
5889
runs-on: ubuntu-24.04
5990
name: Ubuntu 24.04, without optimization
@@ -82,6 +113,7 @@ jobs:
82113
sudo rm /var/log/lbbs/bbs.log
83114
sudo make service
84115
with-sanitizer:
116+
needs: rootfs
85117
runs-on: ubuntu-24.04
86118
name: Ubuntu 24.04, under Address Sanitizer
87119
steps:
@@ -98,10 +130,18 @@ jobs:
98130
sudo make install
99131
sudo make samples
100132
sudo make tests
101-
- name: Run tests
133+
- name: Fetch rootfs
134+
uses: actions/cache@v5
135+
with:
136+
path: rootfs.tar.gz
137+
key: rootfs-v1
138+
- name: Install rootfs
102139
run: |
103-
( cd /var/lib/lbbs && sudo wget -q https://code.phreaknet.org/bbs/rootfs.tar.gz && sudo tar -xzf rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
104-
sudo ASAN_RUN=1 scripts/run_tests.sh
140+
# rootfs needed for test_paging
141+
( cd /var/lib/lbbs && sudo tar -xzf $GITHUB_WORKSPACE/rootfs.tar.gz && sudo mkdir -p /tmp/lbbs/rootfs )
142+
ls -la /var/lib/lbbs/rootfs
143+
- name: Run tests
144+
run: sudo ASAN_RUN=1 scripts/run_tests.sh
105145
debian-13:
106146
runs-on: ubuntu-24.04
107147
name: Debian 13

0 commit comments

Comments
 (0)