Skip to content
Snippets Groups Projects
README.md 1.47 KiB
Newer Older
ale's avatar
ale committed
build-deb
===

ale's avatar
ale committed
A set of Docker images used to build Debian packages and push them to
a remote repository, for multiple target distributions and
architectures.

The resulting images are huge (>500MB), but can be successfully used
to build packages and push them to a remote repository (which must be
using [urepo](https://git.autistici.org/ale/urepo)).

ale's avatar
ale committed
A base [ci-common.yml](Gitlab CI configuration template) is provided,
to be included in other projects' *.gitlab-ci.yml* files.
ale's avatar
ale committed

For package upload, the following environment variables should be set:

* `REPOSITORY_SSH_PRIVATE_KEY` is the private SSH key to use for authentication
* `REPOSITORY_NAME` is the urepo repository name
* `REPOSITORY_TARGET` is the repository target hostname (or user@hostname)
ale's avatar
ale committed

# Usage

In order to maintain centralized control over the package build
process for a large number of projects, we make use of Gitlab CI's
*include* functionality.

At the very minimum, a new project should set up its *.gitlab-ci.yml*
file like the following:

```yaml
include "https://git.autistici.org/ai3/build-deb/raw/master/ci-common.yml"
```

It is then possible to add additional stages (like testing, for instance):

```yaml
include "https://git.autistici.org/ai3/build-deb/raw/master/ci-common.yml"

stages:
  - test
  - build_pkgsrc
  - build_pkg
  - upload_pkg

test:
  stage: test
  script: tox -e py27
```

if you override the *stages* list, remember to add the build-deb stages
in order: *build_pkgsrc*, *build_pkg*, *upload_pkg*.