- Re-cloned zonemaster-ldns with --recurse-submodules so the bundled ldns C library source (including Changelog and configure.ac) is present - Added autoconf, automake, libtool to Dockerfile.backend ldns-build stage so libtoolize + autoreconf can generate ldns/configure during make Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
138 lines
3.9 KiB
YAML
138 lines
3.9 KiB
YAML
on:
|
||
push:
|
||
branches:
|
||
- '*'
|
||
tags-ignore:
|
||
- '*'
|
||
pull_request:
|
||
|
||
jobs:
|
||
linux:
|
||
name: Linux (Ubuntu)
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- uses: actions/checkout@main
|
||
with:
|
||
submodules: recursive
|
||
- run: libtoolize -vci
|
||
- run: autoreconf -vfi
|
||
- run: ./configure
|
||
env:
|
||
CFLAGS: -g2 -O0 -fsanitize=address,undefined -fno-sanitize-recover
|
||
- run: make test
|
||
|
||
mac:
|
||
name: macOS
|
||
|
||
runs-on: macos-latest
|
||
|
||
steps:
|
||
- run: brew install automake libtool
|
||
- uses: actions/checkout@main
|
||
with:
|
||
submodules: recursive
|
||
- run: glibtoolize -vci
|
||
- run: autoreconf -vfi
|
||
|
||
# macOS’s system OpenSSL (LibreSSL, actually) isn’t meant for linking,
|
||
# and Homebrew’s# OpenSSL isn’t CI-friendly. So build without OpenSSL.
|
||
- run: ./configure --without-ssl --disable-sha2 --disable-gost --disable-ecdsa --disable-dane
|
||
env:
|
||
CFLAGS: -g2 -O0 -fsanitize=address,undefined -fno-sanitize-recover
|
||
- run: make test
|
||
|
||
# Pending https://github.com/NLnetLabs/ldns/issues/197,
|
||
# only builds succeed here.
|
||
cygwin:
|
||
name: Cygwin
|
||
|
||
runs-on: windows-latest
|
||
|
||
steps:
|
||
- name: Make git ignore line breaks
|
||
run: git config --global core.autocrlf false
|
||
- name: Set up Cygwin
|
||
uses: cygwin/cygwin-install-action@master
|
||
with:
|
||
packages: make gcc-g++ bash libtool automake autoconf libssl-devel bind-utils
|
||
- uses: actions/checkout@main
|
||
with:
|
||
submodules: recursive
|
||
- shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
|
||
name: Build
|
||
run: |
|
||
cd $GITHUB_WORKSPACE
|
||
libtoolize -vci
|
||
autoreconf -vfi
|
||
./configure
|
||
make
|
||
|
||
qemu-alpine:
|
||
name: Linux (Alpine, ${{ matrix.platform }})
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
platform:
|
||
- i386
|
||
- arm32v6
|
||
- arm32v7
|
||
- arm64v8
|
||
- s390x
|
||
|
||
steps:
|
||
- uses: actions/checkout@main
|
||
with:
|
||
submodules: recursive
|
||
- name: Get the qemu container
|
||
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||
- name: "${{ matrix.platform }}: Build and test"
|
||
run: docker run --rm --interactive --mount type=bind,source=$(pwd),target=/host ${{ matrix.platform }}/alpine sh -c "apk add make gcc libc-dev libtool automake autoconf openssl-dev m4 indent bash bind-tools && cd /host && libtoolize -vci && autoreconf -vfi && ./configure && make test"
|
||
|
||
|
||
# BSDs:
|
||
# name: ${{ matrix.os.dispname }} ${{ matrix.os.version }}
|
||
#
|
||
# runs-on: macos-latest
|
||
#
|
||
# strategy:
|
||
# fail-fast: false
|
||
# matrix:
|
||
# os:
|
||
# - name: freebsd
|
||
# dispname: FreeBSD
|
||
# version: '13.0'
|
||
# pkginstall: pkg install -y libtool automake bind-tools gmake gindent
|
||
# env:
|
||
# configure_args:
|
||
#
|
||
# # OpenBSD seems to require explicit auto* versions.
|
||
# - name: openbsd
|
||
# dispname: OpenBSD
|
||
# version: '7.1'
|
||
# pkginstall: pkg_add -v libtool gmake gindent automake-1.16.3 autoconf-2.71
|
||
# env: AUTOCONF_VERSION=2.71 AUTOMAKE_VERSION=1.16
|
||
# configure_args: --disable-dane-verify
|
||
#
|
||
# steps:
|
||
# - uses: actions/checkout@main
|
||
# with:
|
||
# submodules: recursive
|
||
# - name: Build and test on ${{ matrix.os.name }}
|
||
# uses: cross-platform-actions/action@master
|
||
# with:
|
||
# operating_system: ${{ matrix.os.name }}
|
||
# version: ${{ matrix.os.version }}
|
||
# shell: bash
|
||
# run: |
|
||
# export DUMMY12345=1 ${{ matrix.os.env }}
|
||
# sudo ${{ matrix.os.pkginstall }} || ${{ matrix.os.pkginstall }}
|
||
# libtoolize -vci
|
||
# autoreconf -vfi
|
||
# ./configure ${{ matrix.os.configure_args }}
|
||
# gmake test
|