name: CI on: push: branches: - develop - master - 'release/**' pull_request: branches: - develop - master - 'release/**' jobs: run-tests: strategy: matrix: compatibility: - develop #- latest perl: - '5.40' - '5.36' - '5.26' runner: - ubuntu-22.04 runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v2 - uses: shogo82148/actions-setup-perl@v1 with: perl-version: ${{ matrix.perl }} - name: Binary dependencies run: | # * These were taken from the installation instruction. # * Gettext was added so we can run cpanm . on the Engine sources. # * The Perl modules were left out because I couldn't get all of them # to work with custom Perl versions. # * Cpanminus was left out because actions-setup-perl installs it. sudo apt-get install -y \ autoconf \ automake \ build-essential \ gettext \ libidn2-dev \ liblog-any-perl \ libssl-dev \ libtool \ m4 \ - name: Install Zonemaster::LDNS (latest) if: ${{ matrix.compatibility == 'latest' }} run: | cpanm --sudo --notest Module::Install ExtUtils::PkgConfig Zonemaster::LDNS - name: Install Zonemaster::LDNS (develop) if: ${{ matrix.compatibility == 'develop' }} run: | cpanm --sudo --notest Devel::CheckLib Module::Install ExtUtils::PkgConfig Module::Install::XSUtil git clone --branch=develop --depth=1 https://github.com/zonemaster/zonemaster-ldns.git perl Makefile.PL # Generate MYMETA.yml to appease cpanm . ( cd zonemaster-ldns ; cpanm --sudo --notest . ) rm -rf zonemaster-ldns # Installing Zonemaster::Engine requires root privileges, because of a # bug in Mail::SPF preventing normal installation with cpanm as # non-root user (see link below [1]). # # The alternative, if one still wishes to install Zonemaster::Engine # as non-root user, is to install Mail::SPF first with a command like: # # % cpanm --notest \ # --install-args="--install_path sbin=$HOME/.local/sbin" \ # Mail::SPF # # For the sake of consistency, other Perl packages installed from CPAN # are also installed as root. # # [1]: https://rt.cpan.org/Public/Bug/Display.html?id=34768 - name: Install remaining dependencies run: | cpanm --sudo --verbose --notest --installdeps . - name: Install Zonemaster::Engine run: | cpanm --sudo --verbose --notest . - name: Show content of log files if: ${{ failure() }} run: cat /home/runner/.cpanm/work/*/build.log - name: Test run: | prove -lv t