Skip to content

Commit 3311adc

Browse files
ci: refactor build dependencies in GHA
Move build dependencies in some multiline variable to make it easier to update. For the Fedora pipeline, use a single source of trust in the prepare image job. Signed-off-by: David Marchand <[email protected]> Acked-by: Aaron Conole <[email protected]>
1 parent f219e55 commit 3311adc

File tree

1 file changed

+50
-14
lines changed

1 file changed

+50
-14
lines changed

.github/workflows/build.yml

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,27 @@ jobs:
5555
RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
5656
STDATOMIC: ${{ contains(matrix.config.checks, 'stdatomic') }}
5757
UBSAN: ${{ contains(matrix.config.checks, 'ubsan') }}
58+
build_deps: |
59+
ccache \
60+
libarchive-dev \
61+
libbsd-dev \
62+
libbpf-dev \
63+
libfdt-dev \
64+
libibverbs-dev \
65+
libipsec-mb-dev \
66+
libisal-dev \
67+
libjansson-dev \
68+
libnuma-dev \
69+
libpcap-dev \
70+
libssl-dev \
71+
libvirt-dev \
72+
ninja-build \
73+
pkg-config \
74+
python3-pip \
75+
python3-pyelftools \
76+
python3-setuptools \
77+
python3-wheel \
78+
zlib1g-dev
5879
5980
strategy:
6081
fail-fast: false
@@ -133,10 +154,7 @@ jobs:
133154
- name: Update APT cache
134155
run: sudo apt update || true
135156
- name: Install packages
136-
run: sudo apt install -y ccache libarchive-dev libbsd-dev libbpf-dev
137-
libfdt-dev libibverbs-dev libipsec-mb-dev libisal-dev libjansson-dev
138-
libnuma-dev libpcap-dev libssl-dev libvirt-dev ninja-build pkg-config python3-pip
139-
python3-pyelftools python3-setuptools python3-wheel zlib1g-dev
157+
run: sudo apt install -y ${{ env.build_deps }}
140158
- name: Install libabigail build dependencies if no cache is available
141159
if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-hit != 'true'
142160
run: sudo apt install -y autoconf automake libdw-dev libtool libxml2-dev libxxhash-dev
@@ -227,7 +245,31 @@ jobs:
227245
prepare-container-images:
228246
name: ${{ join(matrix.config.*, '-') }}
229247
runs-on: ubuntu-latest
248+
env:
249+
build_deps: |
250+
ccache \
251+
intel-ipsec-mb-devel \
252+
isa-l-devel \
253+
jansson-devel \
254+
libarchive-devel \
255+
libatomic \
256+
libbsd-devel \
257+
libbpf-devel \
258+
libfdt-devel \
259+
libpcap-devel \
260+
libvirt-devel \
261+
libxdp-devel \
262+
ninja-build \
263+
numactl-devel \
264+
openssl-devel \
265+
python3-pip \
266+
python3-pyelftools \
267+
python3-setuptools \
268+
python3-wheel \
269+
rdma-core-devel \
270+
zlib-devel
230271
outputs:
272+
build_deps: ${{ steps.get_keys.outputs.build_deps }}
231273
image: ${{ steps.get_keys.outputs.image }}
232274

233275
strategy:
@@ -240,6 +282,7 @@ jobs:
240282
- name: Generate various keys
241283
id: get_keys
242284
run: |
285+
echo 'build_deps='$(echo -n ${{ env.build_deps }}) >> $GITHUB_OUTPUT
243286
echo 'image=image-${{ matrix.config.image }}-'$(date -u +%Y-%m-%d) >> $GITHUB_OUTPUT
244287
- name: Retrieve image cache
245288
id: image_cache
@@ -259,11 +302,7 @@ jobs:
259302
run: docker exec -i dpdk dnf update -y
260303
- name: Install packages
261304
if: steps.image_cache.outputs.cache-hit != 'true'
262-
run: docker exec -i dpdk dnf install -y ccache intel-ipsec-mb-devel
263-
isa-l-devel jansson-devel libarchive-devel libatomic libbsd-devel
264-
libbpf-devel libfdt-devel libpcap-devel libvirt-devel libxdp-devel
265-
ninja-build numactl-devel openssl-devel python3-pip python3-pyelftools
266-
python3-setuptools python3-wheel rdma-core-devel zlib-devel
305+
run: docker exec -i dpdk dnf install -y ${{ env.build_deps }}
267306
- name: Save image in cache
268307
if: steps.image_cache.outputs.cache-hit != 'true'
269308
run: |
@@ -335,11 +374,8 @@ jobs:
335374
- name: Update
336375
run: docker exec -i dpdk dnf update -y || true
337376
- name: Install packages
338-
run: docker exec -i dpdk dnf install -y ccache intel-ipsec-mb-devel
339-
isa-l-devel jansson-devel libarchive-devel libatomic libbsd-devel
340-
libbpf-devel libfdt-devel libpcap-devel libvirt-devel libxdp-devel
341-
ninja-build numactl-devel openssl-devel python3-pip python3-pyelftools
342-
python3-setuptools python3-wheel rdma-core-devel zlib-devel
377+
run: docker exec -i dpdk dnf install -y
378+
${{ needs.prepare-container-images.outputs.build_deps }}
343379
${{ matrix.config.compiler }}
344380
- name: Run setup
345381
run: docker exec -i dpdk .ci/linux-setup.sh

0 commit comments

Comments
 (0)