The Debian continuous integration (debci) is an automated system that
coordinates the execution of automated tests against packages in the
Debian system. debci
will continuously run
autopkgtest
test suites from source packages in the Debian archive.
Test suites must be included in source packages as defined in the DEP-8 specification. In short.
- The fact that the package has a test suite must be declared by adding a
Testsuite: autopkgtest
entry to the source stanza indebian/control
. - tests are declared in
debian/tests/control
.
Please refer to the DEP-8 spec for details on how to declare your tests.
Test suites are executed by autopkgtest. The version of autopkgtest used to execute the tests is shown in the log file for each test run.
The test suite for a source package will be executed:
- when any package in the dependency chain of its binary packages changes;
- when 1 month is passed since the test suite was run;
debci
is designed to support several text execution backends. The backend
used for a test run is displayed in the corresponding log file.
For the schroot backend:
- The test chroot is a clean chroot, created with debootstrap with no extra arguments.
- dpkg is configured to use the
--force-unsafe-io
option to speed up the installation of packages. - The chroot uses the
debci
profile, installed by thedebci
package.
NOTE: if you intend to run tests frequently, you should consider installing
apt-cacher-ng
before anything else. debci
will notice the running proxy and
will setup the testbed to use it, so you won't have to wait for the download of
each package more than once.
Install a configure debci
$ sudo apt install debci
$ sudo debci setup
Now edit /etc/schroot/chroot.d/debci-SUITE-ARCH
(by default SUITE
is
unstable
and ARCH
is your native architecture), and add your username to
the users
, root-users
and source-root-users
configuration keys:
[...]
users=debci,$YOUR_USERNAME
[...]
root-users=debci,$YOUR_USERNAME
source-root=users=debci,$YOUR_USERNAME
[...]
To speed up test suite execution, you can also add the following line at the end:
union-overlay-directory=/dev/shm
This will mount the chroot overlay on tmpfs
which will make installing test
dependencies a lot faster. If your hard disk is already a SSD, you probably
don't need that. If you don't have a good amount of RAM, you may have problems
using this.
The following examples assume:
- the
schroot
debci backend - suite =
unstable
(the default) - architecture =
amd64
To run the test suite from a source package in the archive, you pass the package name to adt-run:
$ adt-run --user debci --output-dir /tmp/output-dir SOURCEPACKAGE --- schroot debci-unstable-amd64
To run the test suite against a locally-built source package, using the
test suite from that source package and the binary packages you just built, you
can pass the .changes
file to adt-run:
$ adt-run --user debci --output-dir /tmp/output-dir \
/path/to/PACKAGE_x.y-z_amd64.changes \
schroot debci-unstable-amd64
For more details, see the documentation for the autopkgtest
package.
Please report bugs against the debci package in the Debian BTS.
- Get source:
git clone https://alioth.debian.org/anonscm/git/collab-maint/debci.git
- Browse source
- {file:HACKING.md How to setup a development environment}
- {file:RUBYAPI.md The Ruby API to the debci data store}
For maintainer queries and general discussion:
- mailing list: debian-qa@lists.debian.org
- IRC:
#debian-qa
on OFTC. Feel free to highlightterceiro
For the development of debci itself
- mailing list: autopkgtest-devel
- IRC:
#debci
on OFTC
Copyright © 2014 the debci development team.
debci is free software licensed under the GNU General Public License version 3 or later.