On Mon, Mar 27, 2023 at 5:39 PM Dumitru Ceara <[email protected]> wrote:

> Until now weekly OVN jobs would try to compile against OVS master
> branch.  But that potentially contains changes that break API.  For
> example a recent OVS commit [0] changed the signature of the
> daemonize_start() function.  In order to avoid build failures due
> to such changes, adapt the weekly OVN CI job to compile against the most
> recent OVS stable branch commit.  Most likely that won't contain changes
> that break APIs used by OVN.
>
> [0]
> https://github.com/openvswitch/ovs/commit/07cf5810de8da12c700324bc421bde92376abe06
>
> Signed-off-by: Dumitru Ceara <[email protected]>
>

Hi Dumitru,
this unfortunately breaks the container CI. As it is kinda unexpected to
do something with the git repos inside the build-x.sh. Would it be possible
to have it in the workflow instead?. That would also make it way more
obvious what
is the intention.

Thanks,
Ales


> ---
>  .ci/linux-build.sh         |  6 ++++++
>  .ci/osx-build.sh           |  7 +++++++
>  .ci/util.sh                |  9 +++++++++
>  .github/workflows/test.yml | 36 +++++++++++++++++++-----------------
>  Makefile.am                |  1 +
>  5 files changed, 42 insertions(+), 17 deletions(-)
>  create mode 100644 .ci/util.sh
>
> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
> index 7dfb5c3171..c843dda80c 100755
> --- a/.ci/linux-build.sh
> +++ b/.ci/linux-build.sh
> @@ -3,15 +3,21 @@
>  set -o errexit
>  set -x
>
> +. ./.ci/util.sh
> +
>  ARCH=${ARCH:-"x86_64"}
>  COMMON_CFLAGS=""
>  OVN_CFLAGS=""
>  OPTS="$OPTS --enable-Werror"
>  JOBS=${JOBS:-"-j4"}
> +OVS_USE_STABLE=${OVS_USE_STABLE:false}
>
>  function configure_ovs()
>  {
>      pushd ovs
> +    if [ "$OVS_USE_STABLE" = "true" ]; then
> +        checkout_latest_stable_branch
> +    fi
>      ./boot.sh && ./configure CFLAGS="${COMMON_CFLAGS}" $* || \
>      { cat config.log; exit 1; }
>      make $JOBS || { cat config.log; exit 1; }
> diff --git a/.ci/osx-build.sh b/.ci/osx-build.sh
> index 4b78b66dd1..03ffb9287b 100755
> --- a/.ci/osx-build.sh
> +++ b/.ci/osx-build.sh
> @@ -1,13 +1,20 @@
>  #!/bin/bash
>
>  set -o errexit
> +set -x
> +
> +. ./.ci/util.sh
>
>  CFLAGS="-Werror $CFLAGS"
>  EXTRA_OPTS=""
> +OVS_USE_STABLE=${OVS_USE_STABLE:false}
>
>  function configure_ovs()
>  {
>      pushd ovs
> +    if [ "$OVS_USE_STABLE" = "true" ]; then
> +        checkout_latest_stable_branch
> +    fi
>      ./boot.sh && ./configure $*
>      make -j4 || { cat config.log; exit 1; }
>      popd
> diff --git a/.ci/util.sh b/.ci/util.sh
> new file mode 100644
> index 0000000000..952371dd68
> --- /dev/null
> +++ b/.ci/util.sh
> @@ -0,0 +1,9 @@
> +# Tries to guess the latest stable branch in a git repo and checks it out.
> +# Assumes the CWD is inside a clone of the repo.  It also assumes stable
> +# branch names follow the "branch-x.y" convention.
> +function checkout_latest_stable_branch()
> +{
> +    local branch=$(git branch -a -l '*branch-*' | \
> +        sed 's/remotes\/origin\///' | sort -V | tail -1)
> +    git checkout $branch
> +}
> diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
> index 90dc8a6f19..82f916a997 100644
> --- a/.github/workflows/test.yml
> +++ b/.github/workflows/test.yml
> @@ -19,13 +19,14 @@ jobs:
>          libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
>          selinux-policy-dev ncat python3-scapy isc-dhcp-server
>        m32_dependecies: gcc-multilib
> -      ARCH:        ${{ matrix.cfg.arch }}
> -      CC:          ${{ matrix.cfg.compiler }}
> -      LIBS:        ${{ matrix.cfg.libs }}
> -      OPTS:        ${{ matrix.cfg.opts }}
> -      TESTSUITE:   ${{ matrix.cfg.testsuite }}
> -      TEST_RANGE:  ${{ matrix.cfg.test_range }}
> -      SANITIZERS:  ${{ matrix.cfg.sanitizers }}
> +      ARCH:           ${{ matrix.cfg.arch }}
> +      CC:             ${{ matrix.cfg.compiler }}
> +      LIBS:           ${{ matrix.cfg.libs }}
> +      OPTS:           ${{ matrix.cfg.opts }}
> +      TESTSUITE:      ${{ matrix.cfg.testsuite }}
> +      TEST_RANGE:     ${{ matrix.cfg.test_range }}
> +      SANITIZERS:     ${{ matrix.cfg.sanitizers }}
> +      OVS_USE_STABLE: ${{ github.event_name == 'schedule'}}
>
>      name: linux ${{ join(matrix.cfg.*, ' ') }}
>      runs-on: ubuntu-20.04
> @@ -70,15 +71,15 @@ jobs:
>        if: github.event_name == 'schedule'
>        uses: actions/checkout@v3
>
> -    # Weekly runs test using OVS master instead of the
> -    # submodule.
> -    - name: checkout OVS master
> +    # Weekly runs test using the tip of the most recent stable OVS branch
> +    # instead of the submodule (OVS_USE_STABLE gets set to "true").
> +    - name: checkout OVS
>        if: github.event_name == 'schedule'
>        uses: actions/checkout@v3
>        with:
>          repository: 'openvswitch/ovs'
> +        fetch-depth: 0
>          path: 'ovs'
> -        ref: 'master'
>
>      - name: update APT cache
>        run:  sudo apt update
> @@ -137,8 +138,9 @@ jobs:
>
>    build-osx:
>      env:
> -      CC:    clang
> -      OPTS:  --disable-ssl
> +      CC:             clang
> +      OPTS:           --disable-ssl
> +      OVS_USE_STABLE: ${{ github.event_name == 'schedule'}}
>
>      name:    osx clang --disable-ssl
>      runs-on: macos-latest
> @@ -156,15 +158,15 @@ jobs:
>      - name: checkout without submodule
>        if: github.event_name == 'schedule'
>        uses: actions/checkout@v3
> -    # Weekly runs test using OVS master instead of the
> -    # submodule.
> -    - name: checkout OVS master
> +    # Weekly runs test using the tip of the most recent stable OVS branch
> +    # instead of the submodule (OVS_USE_STABLE gets set to "true")
> +    - name: checkout OVS
>        if: github.event_name == 'schedule'
>        uses: actions/checkout@v3
>        with:
>          repository: 'openvswitch/ovs'
> +        fetch-depth: 0
>          path: 'ovs'
> -        ref: 'master'
>      - name: install dependencies
>        run:  brew install automake libtool
>      - name: update PATH
> diff --git a/Makefile.am b/Makefile.am
> index 8c60d4a719..2d650fa1ef 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -93,6 +93,7 @@ EXTRA_DIST = \
>         .ci/ovn-kubernetes/Dockerfile \
>         .ci/ovn-kubernetes/prepare.sh \
>         .ci/ovn-kubernetes/custom.patch \
> +       .ci/util.sh \
>         .github/workflows/test.yml \
>         .github/workflows/ovn-kubernetes.yml \
>         boot.sh \
> --
> 2.31.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>

-- 

Ales Musil

Senior Software Engineer - OVN Core

Red Hat EMEA <https://www.redhat.com>

[email protected]    IM: amusil
<https://red.ht/sig>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to