name: CI on: push: pull_request: jobs: test-debian-like: strategy: fail-fast: false matrix: image: - ubuntu:latest - ubuntu:20.04 - debian:testing - debian:stable - debian:oldstable runs-on: ubuntu-latest container: image: ${{ matrix.image }} steps: - name: install dependencies run: | apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ automake \ ca-certificates \ git \ curl \ libhttp-daemon-perl \ libhttp-daemon-ssl-perl \ libplack-perl \ libtest-mockmodule-perl \ libtest-tcp-perl \ libtest-warnings-perl \ liburi-perl \ net-tools \ make \ ; - uses: actions/checkout@v4 - name: autogen run: ./autogen - name: configure run: ./configure - name: check run: make VERBOSE=1 AM_COLOR_TESTS=always check - name: distcheck run: make VERBOSE=1 AM_COLOR_TESTS=always distcheck - name: distribution tarball is complete run: ./.github/workflows/scripts/dist-tarball-check - if: ${{ matrix.image == 'debian:testing' }} uses: actions/upload-artifact@v4 with: name: distribution-tarball path: ddclient-*.tar.gz test-fedora-like: strategy: fail-fast: false matrix: image: - fedora:39 - fedora:latest - fedora:rawhide # RedHat UBI is mostly garbage due to a profound lack of basic # packages. It is tested anyway because it's the closest available # approximation of RHEL. Some of the packages needed for some tests # aren't available, so those tests will be skipped. I guess it's # still better than nothing. - registry.access.redhat.com/ubi7/ubi:latest - registry.access.redhat.com/ubi8/ubi:latest - registry.access.redhat.com/ubi9/ubi:latest runs-on: ubuntu-latest container: image: ${{ matrix.image }} steps: - if: ${{ matrix.image != 'registry.access.redhat.com/ubi7/ubi:latest' }} uses: actions/checkout@v4 # ubi7 is too old for checkout@v4. - if: ${{ matrix.image == 'registry.access.redhat.com/ubi7/ubi:latest' }} uses: actions/checkout@v3 - name: install dependencies # The --skip-broken argument works around RedHat UBI's missing packages. # (They're only used for testing, so it's OK to not install them.) run: | inst="dnf --refresh --skip-broken install -y" case '${{ matrix.image }}' in # RedHat UBI 7 (RHEL 7) doesn't have dnf. *ubi7*) inst="yum --skip-broken install -y";; esac ${inst} \ automake \ findutils \ iproute \ make \ curl \ perl \ perl-HTTP-Daemon \ perl-HTTP-Daemon-SSL \ perl-IO-Socket-INET6 \ perl-Plack \ perl-Test-MockModule \ perl-Test-TCP \ perl-Test-Warnings \ perl-core \ net-tools \ ; - name: autogen run: ./autogen - name: configure run: ./configure - name: check run: make VERBOSE=1 AM_COLOR_TESTS=always check - name: distcheck run: make VERBOSE=1 AM_COLOR_TESTS=always distcheck