From 77305ea6d729ab84debb456fefa650fa04ab2f0e Mon Sep 17 00:00:00 2001 From: David Marchand Date: Fri, 2 Sep 2022 10:36:58 +0200 Subject: [PATCH] ci: Check compilation with DPDK experimental API. Add jobs to check compilation with DPDK experimental API enabled. This will help us catch issues for the day we need one of them. Note: this should not be merged to master, intended for dpdk-latest branch only. Signed-off-by: David Marchand Signed-off-by: Ian Stokes Signed-off-by: Ilya Maximets --- .ci/linux-build.sh | 8 +++++++- .github/workflows/build-and-test.yml | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index 8227a574870..acf868fdaad 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -7,6 +7,9 @@ CFLAGS_FOR_OVS="-g -O2" SPARSE_FLAGS="" EXTRA_OPTS="--enable-Werror" +[ -z "$DPDK_EXPERIMENTAL" ] || DPDK=1 +[ -z "$DPDK_SHARED" ] || DPDK=1 + function install_dpdk() { local VERSION_FILE="dpdk-dir/cached-version" @@ -78,8 +81,11 @@ assert ovs.json.from_string('{\"a\": 42}') == {'a': 42}" exit 0 fi -if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then +if [ "$DPDK" ]; then install_dpdk + if [ -n "$DPDK_EXPERIMENTAL" ]; then + CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -DALLOW_EXPERIMENTAL_API" + fi fi if [ "$STD" ]; then diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index e771f287760..a9d3a8559f2 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -82,6 +82,7 @@ jobs: CC: ${{ matrix.compiler }} DPDK: ${{ matrix.dpdk }} DPDK_SHARED: ${{ matrix.dpdk_shared }} + DPDK_EXPERIMENTAL: ${{ matrix.dpdk_experimental }} LIBS: ${{ matrix.libs }} M32: ${{ matrix.m32 }} OPTS: ${{ matrix.opts }} @@ -160,6 +161,9 @@ jobs: dpdk_shared: dpdk-shared opts: --enable-shared + - compiler: gcc + dpdk_experimental: dpdk-experimental + - compiler: gcc m32: m32 opts: --disable-ssl @@ -179,7 +183,7 @@ jobs: python-version: '3.9' - name: cache - if: matrix.dpdk != '' || matrix.dpdk_shared != '' + if: matrix.dpdk != '' || matrix.dpdk_shared != '' || matrix.dpdk_experimental != '' uses: actions/cache@v3 with: path: dpdk-dir