CI: cross-project integration tests 🐞

Add new CI stage "integration" which is only run when $INTEGRATION
variable is set.

Add new testing images:

* debian-10, debian-10-full (previously python-current)
* fedora-33
* suse-15,
* ubuntu-18.04, ubuntu-20.04

Add new integration jobs on supported images for first projects:

* BIRD
* Knot DNS
* Knot Resolver

Jobs on images with known issues are allowed to fail for the time being.

Fixes: #24
19 jobs for kresd in 26 minutes and 7 seconds (queued for 1 second)
Status Job ID Name Coverage
  Test
passed #536426
flake8

00:03:13

passed #536427
pylint

00:03:36

passed #536429
self

00:03:41

passed #536428
unit

00:04:30

 
  Integration
passed #536440
debian-10-bird

00:05:14

passed #536435
debian-10-knot

00:11:39

failed #536430
allowed to fail
debian-10-kresd

00:03:47

failed #536443
allowed to fail
fedora-33-bird

00:02:20

passed #536438
fedora-33-knot

00:13:12

passed #536433
fedora-33-kresd

00:04:25

failed #536444
allowed to fail
suse-15-bird

00:03:31

passed #536439
suse-15-knot

00:11:11

passed #536434
suse-15-kresd

00:21:35

failed #536441
allowed to fail
ubuntu-18.04-bird

00:00:32

failed #536436
allowed to fail
ubuntu-18.04-knot

00:00:35

failed #536431
allowed to fail
ubuntu-18.04-kresd

00:00:31

passed #536442
ubuntu-20.10-bird

00:05:35

passed #536437
ubuntu-20.10-knot

00:10:59

failed #536432
allowed to fail
ubuntu-20.10-kresd

00:03:55

 
Name Stage Failure
failed
ubuntu-20.10-kresd Integration
=============================== warnings summary ===============================
ci/tests/test_knot_resolver.py::test_kresd_get_archive
/usr/local/lib/python3.8/dist-packages/packaging/version.py:127: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
warnings.warn(

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============== 1 failed, 3 passed, 1 warnings in 214.13 seconds ===============
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
debian-10-kresd Integration

ci/tests/test_knot_resolver.py::test_kresd_get_archive
/usr/local/lib/python3.7/dist-packages/packaging/version.py:130: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
DeprecationWarning,

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============== 1 failed, 3 passed, 4 warnings in 204.50 seconds ===============
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
suse-15-bird Integration
+ export FFLAGS
+ ./configure --host=x86_64-suse-linux-gnu --build=x86_64-suse-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/lib --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --runstatedir=/run/bird
configure: error: unrecognized option: `--runstatedir=/run/bird'
Try `./configure --help' for more information
error: Bad exit status from /var/tmp/rpm-tmp.RxlpWV (%build)
Bad exit status from /var/tmp/rpm-tmp.RxlpWV (%build)
===================== 1 failed, 3 passed in 190.93 seconds =====================
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
fedora-33-bird Integration
  /usr/lib/python3.9/site-packages/setuptools/lib2to3_ex.py:13: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+
from lib2to3.refactor import RefactoringTool, get_fixers_from_package

-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED ci/tests/test_bird.py::test_bird_build_dev - assert 62 == 0
============== 1 failed, 3 passed, 1 warning in 127.02s (0:02:07) ==============
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
ubuntu-18.04-knot Integration
        with cd(clone_path):
> assert apkg('build-dep', '-y') == 0
E AssertionError: assert 62 == 0
E + where 62 = apkg('build-dep', '-y')

ci/tests/test_knot_dns.py:35: AssertionError
=========================== 4 error in 17.00 seconds ===========================
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
ubuntu-18.04-bird Integration
        with cd(clone_path):
> assert apkg('build-dep', '-y') == 0
E AssertionError: assert 62 == 0
E + where 62 = apkg('build-dep', '-y')

ci/tests/test_bird.py:35: AssertionError
=========================== 4 error in 14.02 seconds ===========================
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
ubuntu-18.04-kresd Integration
        with cd(clone_path):
> assert apkg('build-dep', '-y') == 0
E AssertionError: assert 62 == 0
E + where 62 = apkg('build-dep', '-y')

ci/tests/test_knot_resolver.py:35: AssertionError
=========================== 4 error in 12.63 seconds ===========================
Cleaning up file based variables
ERROR: Job failed: exit code 1