Skip to content

route/link: support update operation for link objects #610

route/link: support update operation for link objects

route/link: support update operation for link objects #610

Workflow file for this run

name: libnl3-ci
on:
push:
pull_request:
env:
NLTST_IN_CI: 1
jobs:
clang-format:
runs-on: ubuntu-latest
container:
image: fedora:41
steps:
- name: Install packages
run: |
sudo dnf install -y \
clang-tools-extra \
git
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup git
run: |
git config --global --add safe.directory "$PWD"
- name: Formatting with clang-format
run: |
clang-format --version
./tools/clang-format.sh -n
ci:
strategy:
matrix:
include:
- cc: gcc
- cc: clang
runs-on: ubuntu-latest
steps:
- name: Install packages
run: |
sudo apt-get update
sudo apt-get -y --no-install-recommends install \
check \
libtool-bin \
meson \
valgrind
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Lint Python
if: ${{ matrix.cc == 'gcc' }}
run: |
python3 -m pip install flake8
flake8 . --count --show-source --statistics
- name: Code formatting with Python black
if: ${{ matrix.cc == 'gcc' }}
run: |
python3 -m pip install black==22.12.0
black --check .
- name: Build
run: |
set -x
export CC="${{ matrix.cc }}"
export CFLAGS="-DNL_MORE_ASSERTS=1000 -O2 -Werror -std=gnu11 -fexceptions"
CONFIGURE_ARGS=
if [ "$CC" = "clang" ]; then
CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
export LDFLAGS="-Wl,--no-undefined-version,--fatal-warnings"
CONFIGURE_ARGS="--enable-debug=no"
else
export LDFLAGS="-Wl,--no-undefined-version"
fi
./autogen.sh
./configure $CONFIGURE_ARGS
make -j 15
shell: bash
- name: Build Unit Tests
run: |
make -j 15 check-build
- name: Run Unit Tests
run: |
set -x
export NLTST_SEED_RAND=
for i in `seq 1 5`; do
tests/check-direct
tests/check-all
make -j 15 check || (cat ./test-suite.log; false)
done
- name: Run Unit Tests w/Valgrind
run: |
set -x
export NLTST_SEED_RAND=
CK_FORK=no libtool --mode=execute valgrind --error-exitcode=66 --leak-check=full -s --show-leak-kinds=all ./tests/check-direct
CK_FORK=no libtool --mode=execute valgrind --error-exitcode=66 --leak-check=full -s --show-leak-kinds=all ./tests/check-all
shell: bash
- name: Install packages for Release
run: |
python3 -m pip install \
asciidoc \
graphviz \
pygments
sudo apt-get -y --no-install-recommends install \
doxygen \
graphviz \
mscgen \
source-highlight
- name: Build Release
run: |
set -x
git clean -fdx
export CC="${{ matrix.cc }}"
NO_GPG_SIGN=1 ./tools/build_release.sh BuildAll
- name: Build out-of-tree and disable-static
run: |
set -x
git clean -fdx
export CC="${{ matrix.cc }}"
export CFLAGS="-Werror -std=gnu11 -fexceptions"
if [ "$CC" = "clang" ]; then
CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
fi
./autogen.sh
mkdir build
cd build
../configure --disable-static
make -j 15
make -j 15 check-build
export NLTST_SEED_RAND=
make -j 15 check || (cat ./test-suite.log; false)
- name: Link with mold
run: |
sudo apt-get -y --no-install-recommends install \
mold
git clean -fdx
export LDFLAGS="-fuse-ld=mold -Wl,--fatal-warnings"
./autogen.sh
./configure
make -j 15 V=1
- run: echo "🍏 This job's status is ${{ job.status }}."
ci-alpine:
runs-on: ubuntu-latest
container:
image: alpine:latest
steps:
- name: Install packages
run: |
apk add \
autoconf \
automake \
bash \
bison \
check-dev \
flex \
gcc \
git \
libtool \
linux-headers \
make \
meson \
musl-dev \
pkgconfig
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup git
run: |
git config --global --add safe.directory "$PWD"
- name: Build
run: |
set -x
export CFLAGS="-DNL_MORE_ASSERTS=1000 -O2 -Werror -std=gnu11 -fexceptions"
if [ "$CC" = "clang" ]; then
CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
export LDFLAGS="-Wl,--no-undefined-version,--fatal-warnings"
else
export LDFLAGS="-Wl,--no-undefined-version"
fi
./autogen.sh
./configure
make -j 15
- name: Build Unit Tests
run: |
make -j 15 check-build
- name: Run Unit Tests
run: |
set -x
export NLTST_SEED_RAND=
for i in `seq 1 5`; do
tests/check-direct
# unshare() does not work (EPERM). This test currently cannot pass
# (odd).
# tests/check-all
# make -j 15 check || (cat ./test-suite.log; false)
make check-local-c-list
done