2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-27 15:18:06 +00:00

ci: Separate job for debs, ensure built pkg is tested.

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.nordahl@canonical.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
Frode Nordahl
2022-07-14 17:55:41 +02:00
committed by Ilya Maximets
parent 9990322610
commit ae262ddf22
2 changed files with 53 additions and 18 deletions

View File

@@ -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

View File

@@ -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,39 @@ 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: yes
name: linux deb
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- name: checkout
uses: actions/checkout@v2
- name: update PATH
run: |
echo "$HOME/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- 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'