Run tests on Cirrus CI, drop Travis (#416)

Travis stopped handing out free credits since their plan changes last
November, so tests have not run since then.

Cirrus CI offers an API similar to Travis, and also explicitly supports
/dev/kvm access.

Eventually we want to use the cockpit/tasks container directly. But we
can't fix the /dev/kvm permissions inside that as `sudo` does not work
in that. Once we fix that, the setup will become much cheaper and
simpler.
This commit is contained in:
Martin Pitt 2021-01-26 05:25:40 +01:00 committed by GitHub
parent bb06422996
commit 4c3d90d3b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 38 deletions

23
.cirrus.yml Normal file
View file

@ -0,0 +1,23 @@
container:
# We should use quay.io/cockpit/tasks here and avoid package installation, but we can't currently run sudo in that container to fix /dev/kvm permissions
image: docker.io/fedora
kvm: true
# increase this if you have many tests that benefit from parallelism
cpu: 1
test_task:
env:
matrix:
- TEST_OS: fedora-33
- TEST_OS: centos-8-stream
setup_script:
- chmod 666 /dev/kvm
- dnf install -y chromium-headless curl git libappstream-glib libvirt-daemon-kvm libvirt-client libvirt-python3 make npm rpm-build rpmdevtools sassc tar
- useradd build
- chown -R build:build .
# test PO template generation
pot_build_script: su -c 'make po/starter-kit.pot' build
check_script: su -c "TEST_JOBS=$(nproc) TEST_OS=$TEST_OS make check" build

View file

@ -1,31 +0,0 @@
dist: focal
sudo: true
language: minimal
addons:
apt:
packages:
- appstream-util
- chromium-browser
- curl
- git
- libvirt-daemon-system
- npm
- python3-libvirt
- qemu-kvm
- qemu-utils
- rpm
- sassc
env:
- TEST_OS=fedora-33
- TEST_OS=centos-8-stream
script:
# HACK: /dev/kvm is root:kvm 0660 by default
- sudo chmod 666 /dev/kvm
# test PO template generation
- make po/starter-kit.pot
# FIXME: build rpm inside VM; no installed rpms on Travis Ubuntu environment
- sed -i '/^BuildRequires:/d' *.spec.in
- TEST_JOBS=$(nproc) make check

View file

@ -60,7 +60,7 @@ Violations of some rules can be fixed automatically by:
Rules configuration can be found in the `.eslintrc.json` file.
# Automated Testing
# Running tests locally
Run `make check` to build an RPM, install it into a standard Cockpit test VM
(centos-7 by default), and run the test/check-application integration test on
@ -80,12 +80,18 @@ You can also run the test against a different Cockpit image, for example:
TEST_OS=fedora-32 make check
These tests can be run in [Travis CI](https://travis-ci.com/). The included
[travis.yml](./.travis.yml) runs the integration tests for two operating
systems (Fedora and CentOS 8). Note that if/once your project grows bigger, or
gets frequent changes, you likely need to move to a paid account, or different
infrastructure with more capacity. Talk to the
[Cockpit developers](https://cockpit-project.org/) if you are interested in that.
# Running tests in CI
These tests can be run in [Cirrus CI](https://cirrus-ci.org/), on their free
[Linux Containers](https://cirrus-ci.org/guide/linux/) environment which
explicitly supports `/dev/kvm`. Please see [Quick
Start](https://cirrus-ci.org/guide/quick-start/) how to set up Cirrus CI for
your project after forking from starter-kit.
The included [.cirrus.yml](./.cirrus.yml) runs the integration tests for two
operating systems (Fedora and CentOS 8). Note that if/once your project grows
bigger, or gets frequent changes, you may need to move to a paid account, or
different infrastructure with more capacity.
# Customizing