@@ -5,25 +5,27 @@ set -x
function build_dpdk()
{
- local VERSION_FILE="dpdk-dir/cached-version"
local DPDK_VER=$1
local DPDK_OPTS=""
+ local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
+ local VERSION_FILE="$DPDK_INSTALL_DIR/cached-version"
- rm -rf dpdk-dir
+ rm -rf dpdk-src
+ rm -rf $DPDK_INSTALL_DIR
if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
- git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}"
- pushd dpdk-dir
+ git clone --single-branch $DPDK_GIT dpdk-src -b "${DPDK_VER##refs/*/}"
+ pushd dpdk-src
git log -1 --oneline
else
wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
tar xvf dpdk-$1.tar.xz > /dev/null
DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
- mv ${DIR_NAME} dpdk-dir
- pushd dpdk-dir
+ mv ${DIR_NAME} dpdk-src
+ pushd dpdk-src
fi
- # Switching to 'default' machine to make dpdk-dir cache usable on
+ # Switching to 'default' machine to make the dpdk cache usable on
# different CPUs. We can't be sure that all CI machines are exactly same.
DPDK_OPTS="$DPDK_OPTS -Dmachine=default"
@@ -42,14 +44,17 @@ function build_dpdk()
DPDK_OPTS="$DPDK_OPTS -Denable_drivers=$enable_drivers"
# Install DPDK using prefix.
- DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"
+ DPDK_OPTS="$DPDK_OPTS --prefix=$DPDK_INSTALL_DIR"
meson $DPDK_OPTS build
ninja -C build
ninja -C build install
-
- echo "Installed DPDK in $(pwd)"
popd
+
+ # Remove examples sources.
+ rm -rf $DPDK_INSTALL_DIR/share/dpdk/examples
+
+ echo "Installed DPDK in $DPDK_INSTALL_DIR"
echo "${DPDK_VER}" > ${VERSION_FILE}
}
@@ -12,8 +12,9 @@ EXTRA_OPTS="--enable-Werror"
function install_dpdk()
{
- local VERSION_FILE="dpdk-dir/cached-version"
- local DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu
+ local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
+ local VERSION_FILE="${DPDK_INSTALL_DIR}/cached-version"
+ local DPDK_LIB=${DPDK_INSTALL_DIR}/lib/x86_64-linux-gnu
if [ "$DPDK_SHARED" ]; then
EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=shared"
@@ -29,13 +30,13 @@ function install_dpdk()
export PATH=$(pwd)/dpdk-dir/build/bin:$PATH
if [ ! -f "${VERSION_FILE}" ]; then
- echo "Could not find DPDK in $(pwd)/dpdk-dir"
+ echo "Could not find DPDK in $DPDK_INSTALL_DIR"
return 1
fi
# Update the library paths.
sudo ldconfig
- echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $(pwd)/dpdk-dir"
+ echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $DPDK_INSTALL_DIR"
}
function configure_ovs()
Rather than save the whole DPDK sources and build artefacts, checkout sources in a separate directory and build DPDK there. Only the installed artefacts are then going to the cache. Example sources in the share/dpdk installed directory can be pruned too. This makes a (v23.11-rc3) DPDK cache entry size go from ~120MB to ~7MB. Signed-off-by: David Marchand <david.marchand@redhat.com> --- .ci/dpdk-build.sh | 25 +++++++++++++++---------- .ci/linux-build.sh | 9 +++++---- 2 files changed, 20 insertions(+), 14 deletions(-)