[ovs-dev] [PATCH 2/2] travis: Make it possible to build against a dpdk branch.

Ilya Maximets i.maximets at samsung.com
Tue Jun 18 15:23:47 UTC 2019


On 12.06.2019 12:21, David Marchand wrote:
> Rework the build script so that we can pass branches and tags.
> 
> With this, DPDK_VER can be passed as:
> - a string starting with refs/ which is understood as a git reference.
>   This triggers a git clone on DPDK_GIT (default value points to
>   https://dpdk.org/git/dpdk) for a single branch pointing to this
>   reference (to save some disk),
> - else, any other string which is understood as an official release.
>   This triggers a tarball download on dpdk.org.
> 
> Signed-off-by: David Marchand <david.marchand at redhat.com>
> ---
>  .travis/linux-build.sh | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> index cd8cfcf..ddba2db 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -63,10 +63,13 @@ function install_kernel()
>  
>  function install_dpdk()
>  {
> -    if [ -n "$DPDK_GIT" ]; then
> -        git clone $DPDK_GIT dpdk-$1
> -        cd dpdk-$1
> -        git checkout tags/v$1
> +    if [ "${1##refs/*/}" != "${1}" ]; then
> +        DPDK_GIT=${DPDK_GIT:-https://dpdk.org/git/dpdk}
> +        ref="${1##refs/*/}"
> +        git clone --single-branch $DPDK_GIT dpdk-git -b $ref
> +        name=$(git --git-dir=dpdk-git/.git describe)
> +        mv dpdk-git dpdk-$name

Renaming the directory seems redundant.
Also, as you're moving EXTRA_OPTS update to this function we don't need
standardised folder names anymore. So, you could remove the renaming from
the 'else' branch too. Just 'cd dpdk-git' here and 'cd $DIR_NAME' there.
If you want the exact revision of the branch you're right now for debugging
reasons, you may print it to stdout like 'git log -1 --oneline' and it will
be kept in travis logs.

> +        cd dpdk-$name
>      else
>          wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
>          tar xvf dpdk-$1.tar.xz > /dev/null
> @@ -87,6 +90,7 @@ function install_dpdk()
>      sed -i '/CONFIG_RTE_KNI_KMOD=y/s/=y/=n/' build/.config
>  
>      make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
> +    EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
>      echo "Installed DPDK source in $(pwd)"
>      cd ..
>  }
> @@ -109,7 +113,6 @@ if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
>          # Disregard cast alignment errors until DPDK is fixed
>          CFLAGS="$CFLAGS -Wno-cast-align"
>      fi
> -    EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/dpdk-$DPDK_VER/build"
>  fi
>  
>  OPTS="$EXTRA_OPTS $*"
> 


More information about the dev mailing list