Skip to content

northd: Fix recompute of referenced chassis in HA chassis groups. #154

northd: Fix recompute of referenced chassis in HA chassis groups.

northd: Fix recompute of referenced chassis in HA chassis groups. #154

Workflow file for this run

name: Build and Test
on:
push:
pull_request:
schedule:
# Run Sunday at midnight
- cron: '0 0 * * 0'
jobs:
build-linux:
env:
dependencies: |
automake libtool gcc bc libjemalloc2 libjemalloc-dev \
libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev \
selinux-policy-dev ncat python3-scapy isc-dhcp-server \
iputils-arping
m32_dependecies: gcc-multilib
CC: ${{ matrix.cfg.compiler }}
LIBS: ${{ matrix.cfg.libs }}
M32: ${{ matrix.cfg.m32 }}
OPTS: ${{ matrix.cfg.opts }}
TESTSUITE: ${{ matrix.cfg.testsuite }}
TESTSUITE_KW: ${{ matrix.cfg.testsuite_kw }}
SANITIZERS: ${{ matrix.cfg.sanitizers }}
name: linux ${{ join(matrix.cfg.*, ' ') }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
cfg:
- { compiler: gcc, opts: --disable-ssl }
- { compiler: clang, opts: --disable-ssl }
- { compiler: gcc, testsuite: test, testsuite_kw: "parallelization=yes,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: test, testsuite_kw: "parallelization=yes,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: test, testsuite_kw: "parallelization=no,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: test, testsuite_kw: "parallelization=no,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: test, testsuite_kw: "!ovn-northd" }
- { compiler: clang, testsuite: test, sanitizers: sanitizers, testsuite_kw: "parallelization=yes,ovn_monitor_all=yes" }
- { compiler: clang, testsuite: test, sanitizers: sanitizers, testsuite_kw: "parallelization=yes,ovn_monitor_all=no" }
- { compiler: clang, testsuite: test, sanitizers: sanitizers, testsuite_kw: "parallelization=no,ovn_monitor_all=yes" }
- { compiler: clang, testsuite: test, sanitizers: sanitizers, testsuite_kw: "parallelization=no,ovn_monitor_all=no" }
- { compiler: clang, testsuite: test, sanitizers: sanitizers, testsuite_kw: "!ovn-northd" }
- { compiler: gcc, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=yes,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=yes,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=no,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=no,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: test, libs: -ljemalloc, testsuite_kw: "!ovn-northd" }
- { compiler: clang, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=yes,ovn_monitor_all=yes" }
- { compiler: clang, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=yes,ovn_monitor_all=no" }
- { compiler: clang, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=no,ovn_monitor_all=yes" }
- { compiler: clang, testsuite: test, libs: -ljemalloc, testsuite_kw: "parallelization=no,ovn_monitor_all=no" }
- { compiler: clang, testsuite: test, libs: -ljemalloc, testsuite_kw: "!ovn-northd" }
- { compiler: gcc, testsuite: system-test, testsuite_kw: "parallelization=yes,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: system-test, testsuite_kw: "parallelization=yes,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: system-test, testsuite_kw: "parallelization=no,ovn_monitor_all=yes" }
- { compiler: gcc, testsuite: system-test, testsuite_kw: "parallelization=no,ovn_monitor_all=no" }
- { compiler: gcc, testsuite: system-test, testsuite_kw: "!ovn-northd" }
- { compiler: gcc, m32: m32, opts: --disable-ssl}
steps:
- name: checkout
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@v2
with:
submodules: recursive
# For weekly runs, don't update submodules
- name: checkout without submodule
if: github.event_name == 'schedule'
uses: actions/checkout@v2
# Weekly runs test using OVS master instead of the
# submodule.
- name: checkout OVS master
if: github.event_name == 'schedule'
uses: actions/checkout@v2
with:
repository: 'openvswitch/ovs'
path: 'ovs'
ref: 'master'
- name: update APT cache
run: sudo apt update
- name: remove netcat-openbsd
run: sudo apt remove -y netcat-openbsd
- name: install required dependencies
run: sudo apt install -y ${{ env.dependencies }}
- name: install libunbound libunwind
if: matrix.cfg.m32 == ''
run: sudo apt install -y libunbound-dev libunwind-dev
- name: install 32-bit dependencies
if: matrix.cfg.m32 != ''
run: sudo apt install -y ${{ env.m32_dependecies }}
- 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.x'
- name: prepare
run: ./.ci/linux-prepare.sh
- name: build
run: ./.ci/linux-build.sh
- name: copy logs on failure
if: failure() || cancelled()
run: |
# upload-artifact@v2 throws exceptions if it tries to upload socket
# files and we could have some socket files in testsuite.dir.
# Also, upload-artifact@v2 doesn't work well enough with wildcards.
# So, we're just archiving everything here to avoid any issues.
mkdir logs
cp config.log ./logs/
cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
# System tests are run as root, need to adjust permissions.
sudo chmod -R +r ./tests/system-kmod-testsuite.* || true
cp -r ./tests/system-kmod-testsuite.* ./logs/ || true
tar -czvf logs.tgz logs/
- name: upload logs on failure
if: failure() || cancelled()
uses: actions/upload-artifact@v2
with:
name: logs-linux-${{ join(matrix.cfg.*, '-') }}
path: logs.tgz
build-osx:
env:
CC: clang
OPTS: --disable-ssl
name: osx clang --disable-ssl
runs-on: macos-latest
strategy:
fail-fast: false
steps:
- name: checkout
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@v2
with:
submodules: recursive
# For weekly runs, don't update submodules
- name: checkout without submodule
if: github.event_name == 'schedule'
uses: actions/checkout@v2
# Weekly runs test using OVS master instead of the
# submodule.
- name: checkout OVS master
if: github.event_name == 'schedule'
uses: actions/checkout@v2
with:
repository: 'openvswitch/ovs'
path: 'ovs'
ref: 'master'
- name: install dependencies
run: brew install automake libtool
- 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.x'
- name: prepare
run: ./.ci/osx-prepare.sh
- name: build
run: ./.ci/osx-build.sh
- name: upload logs on failure
if: failure()
uses: actions/upload-artifact@v2
with:
name: logs-osx-clang---disable-ssl
path: config.log