Hello,
On Thu, Apr 27, 2023 at 2:45 PM Ilya Maximets <[email protected]> wrote:
> > diff --git a/.ci/dpdk-build.sh b/.ci/dpdk-build.sh
> > new file mode 100755
> > index 0000000000..64dec87247
> > --- /dev/null
> > +++ b/.ci/dpdk-build.sh
> > @@ -0,0 +1,65 @@
> > +#!/bin/bash
> > +
> > +set -o errexit
> > +set -x
> > +
> > +function build_dpdk()
> > +{
> > + local VERSION_FILE="dpdk-dir/cached-version"
> > + local DPDK_VER=$1
> > + local DPDK_OPTS=""
> > +
> > + if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
> > + # Avoid using cache for git tree build.
>
> Do we need this branch since you added a comit hash to the cache signature?
Getting the sources to build still depends on DPDK_VER.
We need to distinguish the tarball case from a git "object" string.
>
> > + rm -rf dpdk-dir
> > +
> > + DPDK_GIT=${DPDK_GIT:-https://dpdk.org/git/dpdk}
> > + git clone --single-branch $DPDK_GIT dpdk-dir -b
> > "${DPDK_VER##refs/*/}"
> > + pushd dpdk-dir
> > + git log -1 --oneline
> > + else
> > + if [ -f "${VERSION_FILE}" ]; then
> > + VER=$(cat ${VERSION_FILE})
> > + if [ "${VER}" = "${DPDK_VER}" ]; then
> > + echo "Found already built DPDK ${VER} build in
> > $(pwd)/dpdk-dir"
>
> Version file ligic is probably redundant as well, since the script will
> not be executed on a cache hit.
Yep.
[snip]
> > + name: dpdk gcc
> > + runs-on: ubuntu-20.04
> > + timeout-minutes: 30
> > +
> > + steps:
> > + - name: checkout
> > + uses: actions/checkout@v3
> > +
> > + - name: update PATH
> > + run: |
> > + echo "$HOME/bin" >> $GITHUB_PATH
> > + echo "$HOME/.local/bin" >> $GITHUB_PATH
> > +
> > + - name: create ci signature file for the dpdk cache key
> > + # This will collect most of DPDK related lines, so hash will be
> > different
> > + # if something changed in a way we're building DPDK including
> > DPDK_VER.
> > + # This also allows us to use cache from any branch as long as version
> > + # and a way we're building DPDK stays the same.
> > + run: |
> > + grep -irE 'RTE_|DPDK|meson|ninja' .ci/dpdk-* > dpdk-ci-signature
> > + grep -rwE 'DPDK_GIT|DPDK_VER' .github/ >> dpdk-ci-signature
> > + if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
> > + git ls-remote --heads $DPDK_GIT $DPDK_VER >> dpdk-ci-signature
> > + fi
> > + cat dpdk-ci-signature
>
> Should we move this into a separate small script file?
> It's duplicated in two places now and bacame a bit more complex.
Good idea.
--
David Marchand
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev