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