On Fri, Jul 1, 2022 at 4:39 PM Ilya Maximets <i.maxim...@ovn.org> wrote: > > On 6/29/22 15:52, Frode Nordahl wrote: > > Use a separate GitHub Actions job for deb test so that we can > > control base image for package test. > > > > The CI deb package test code currently attempts to use `apt` to > > install local packages. That may not produce the expected result. > > > > Explicitly install the local packages with `dpkg` after installing > > dependencies from `apt` instead. > > > > Also enable test installation of ipsec deb package. > > > > Signed-off-by: Frode Nordahl <frode.nord...@canonical.com> > > --- > > .ci/linux-build.sh | 21 ++++++++-- > > .github/workflows/build-and-test.yml | 62 +++++++++++++++++++++------- > > 2 files changed, 65 insertions(+), 18 deletions(-) > > > > diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh > > index 9963fb810..a8c437aaf 100755 > > --- a/.ci/linux-build.sh > > +++ b/.ci/linux-build.sh > > @@ -207,10 +207,23 @@ if [ "$DEB_PACKAGE" ]; then > > mk-build-deps --install --root-cmd sudo --remove debian/control > > dpkg-checkbuilddeps > > DEB_BUILD_OPTIONS='parallel=4 nocheck' fakeroot debian/rules binary > > - # Not trying to install ipsec package as there are issues with > > system-wide > > - # installed python3-openvswitch package and the pyenv used by Travis. > > - packages=$(ls $(pwd)/../*.deb | grep -v ipsec) > > - sudo apt install ${packages} > > + packages=$(ls $(pwd)/../*.deb) > > + deps="" > > + for pkg in $packages; do > > + _ifs=$IFS > > + IFS="," > > + for dep in $(dpkg-deb -f $pkg Depends); do > > + dep_name=$(echo "$dep"|awk '{print$1}') > > + # Don't install internal package inter-dependencies from apt > > + echo $dep_name | grep -q openvswitch && continue > > + deps+=" $dep_name" > > + done > > + IFS=$_ifs > > + done > > + # install package dependencies from apt > > + echo $deps | xargs sudo apt -y install > > + # install the locally built openvswitch packages > > + sudo dpkg -i $packages > > exit 0 > > fi > > > > diff --git a/.github/workflows/build-and-test.yml > > b/.github/workflows/build-and-test.yml > > index ec34a9b0d..b36282ce5 100644 > > --- a/.github/workflows/build-and-test.yml > > +++ b/.github/workflows/build-and-test.yml > > @@ -9,13 +9,10 @@ jobs: > > automake libtool gcc bc libjemalloc1 libjemalloc-dev \ > > libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev \ > > ninja-build selinux-policy-dev > > - deb_dependencies: | > > - linux-headers-$(uname -r) build-essential fakeroot devscripts > > equivs > > AFXDP: ${{ matrix.afxdp }} > > ASAN: ${{ matrix.asan }} > > UBSAN: ${{ matrix.ubsan }} > > CC: ${{ matrix.compiler }} > > - DEB_PACKAGE: ${{ matrix.deb_package }} > > DPDK: ${{ matrix.dpdk }} > > DPDK_SHARED: ${{ matrix.dpdk_shared }} > > KERNEL: ${{ matrix.kernel }} > > @@ -148,11 +145,7 @@ jobs: > > - name: update APT cache > > run: sudo apt update || true > > - name: install common dependencies > > - if: matrix.deb_package == '' > > run: sudo apt install -y ${{ env.dependencies }} > > - - name: install dependencies for debian packages > > - if: matrix.deb_package != '' > > - run: sudo apt install -y ${{ env.deb_dependencies }} > > - name: install libunbound libunwind > > if: matrix.m32 == '' > > run: sudo apt install -y libunbound-dev libunwind-dev > > @@ -163,13 +156,6 @@ jobs: > > - name: build > > run: ./.ci/linux-build.sh > > > > - - name: upload deb packages > > - if: matrix.deb_package != '' > > - uses: actions/upload-artifact@v2 > > - with: > > - name: deb-packages > > - path: '/home/runner/work/ovs/*.deb' > > - > > - name: copy logs on failure > > if: failure() || cancelled() > > run: | > > @@ -224,3 +210,51 @@ jobs: > > with: > > name: logs-osx-clang---disable-ssl > > path: config.log > > + > > + build-linux-deb: > > + env: > > + deb_dependencies: | > > + linux-headers-$(uname -r) build-essential fakeroot devscripts > > equivs > > + DEB_PACKAGE: ${{ matrix.deb_package }} > > We should, porbbaly, just remove the 'matrix' from this job > and define env variables directly. i.e.: > > DEB_PACKAGE: yes > > > + > > + name: linux ${{ join(matrix.*, ' ') }} > > And here just: > name: linux deb > Or something along these lines. > > > + runs-on: ubuntu-22.04 > > + timeout-minutes: 30 > > + > > + strategy: > > + fail-fast: false > > + matrix: > > + include: > > + - compiler: gcc > > + deb_package: deb > > The 'matrix' section can be just removed this way. > And we're not using the 'compiler' anywhere.
Ack, I'll incorporate the proposed changes. Thx! -- Frode Nordahl > > + > > + steps: > > + - name: checkout > > + uses: actions/checkout@v2 > > + > > + - name: update PATH > > + run: | > > + echo "$HOME/bin" >> $GITHUB_PATH > > + echo "$HOME/.local/bin" >> $GITHUB_PATH > > + > > + - name: set up python > > + uses: actions/setup-python@v2 > > + with: > > + python-version: '3.9' > > + > > + - name: update APT cache > > + run: sudo apt update || true > > + - name: install dependencies for debian packages > > + run: sudo apt install -y ${{ env.deb_dependencies }} > > + > > + - name: prepare > > + run: ./.ci/linux-prepare.sh > > + > > + - name: build > > + run: ./.ci/linux-build.sh > > + > > + - name: upload deb packages > > + uses: actions/upload-artifact@v2 > > + with: > > + name: deb-packages > > + path: '/home/runner/work/ovs/*.deb' > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev