Skip to content

debian: refresh packaging for 1.0 #104

debian: refresh packaging for 1.0

debian: refresh packaging for 1.0 #104

Workflow file for this run

name: Bob the Builder
# Run on all branches, including all pull requests, except the 'dev'
# branch since that's where we run Coverity Scan (limited tokens/day)
on:
push:
branches:
- '**'
- '!dev'
pull_request:
branches:
- '**'
jobs:
build:
# Verify we can build on latest Ubuntu with both gcc and clang
name: ${{ matrix.compiler }}
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc, clang]
fail-fast: false
env:
MAKEFLAGS: -j3
CC: ${{ matrix.compiler }}
steps:
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install tree doxygen libcmocka-dev tshark tcpdump
- uses: actions/checkout@v6
- name: Configure
run: |
./autogen.sh
./configure --prefix= --disable-silent-rules --enable-tests
- name: Build
run: |
make
- name: Install to ~/tmp and Inspect
run: |
DESTDIR=~/tmp make install-strip
tree ~/tmp
LD_LIBRARY_PATH=~/tmp/lib ldd ~/tmp/sbin/mdnsd
size ~/tmp/sbin/mdnsd
size ~/tmp/lib/libmdnsd.so*
LD_LIBRARY_PATH=~/tmp/lib ~/tmp/sbin/mdnsd -h
- name: Enable unprivileged userns (unshare)
run: |
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
- name: Test
run: |
make check || (cat test/test-suite.log; false)
- name: Upload Test Results
uses: actions/upload-artifact@v7
with:
name: mdnsd-test-${{ matrix.compiler }}
path: test/*
asan:
# Run the cmocka unit tests under AddressSanitizer; this is where the
# heap-use-after-free from issue #92 would resurface. The unit tests
# mock getifaddrs() and run directly (no namespace), so the run is
# deterministic. The shell tests are not run here -- the daemon's
# leak-on-exit under a signal would make the run flaky.
name: asan
runs-on: ubuntu-latest
env:
MAKEFLAGS: -j3
CC: clang
CFLAGS: -fsanitize=address -g -O1
steps:
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install clang libcmocka-dev
- uses: actions/checkout@v6
- name: Configure
run: |
./autogen.sh
./configure --prefix= --enable-tests
- name: Build and unit test under AddressSanitizer
run: |
make check TESTS="xht addr answer label sdtxt" || (cat test/test-suite.log; false)
distcheck:
runs-on: ubuntu-latest
env:
MAKEFLAGS: -j3
steps:
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install tree doxygen libcmocka-dev
- uses: actions/checkout@v6
- name: Configure
run: |
./autogen.sh
./configure --prefix=
- name: Enable unprivileged userns (unshare)
run: |
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
- name: Build & Check
run: |
make distcheck