name: Live mDNS verification
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
concurrency:
group: live-mdns-${{ github.ref }}
cancel-in-progress: true
jobs:
verify:
runs-on: ubuntu-24.04
timeout-minutes: 35
steps:
- name: Check out source
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- name: Install build and network tools
shell: bash
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install --yes --no-install-recommends \
gfortran iproute2 libssl-dev liburing-dev
- name: Build the release daemon and client
run: cargo build --release --bins --locked
- name: Exercise real multicast metadata and anti-spoofing
shell: bash
run: python3 tests/live-mdns.py target/release/systemd-resolved
- name: Install external Avahi interoperability tools
shell: bash
run: |
set -euo pipefail
sudo apt-get install --yes --no-install-recommends avahi-daemon avahi-utils dbus
sudo systemctl stop avahi-daemon.service avahi-daemon.socket 2>/dev/null || true
- name: Exercise external Avahi mDNS/DNS-SD interoperability
shell: bash
run: timeout --kill-after=5s 240s bash tests/parity/llmnr_avahi_interop.sh target/release/systemd-resolved target/release/rustd-resolvectl