ci: Automate container building in Gitlab

This removes the need to manually build and push out the Docker images
for the build. This step is now in GitLab CI itself.
This commit is contained in:
Arun Raghavan 2019-11-21 16:51:40 +05:30
parent 3f89911f1d
commit 8f1b840979
3 changed files with 46 additions and 64 deletions

View File

@ -1,7 +1,52 @@
image: registry.freedesktop.org/pipewire/pipewire/fedora:31
stages:
- container
- build
variables:
# Update this tag when you want to trigger a rebuild
FEDORA_TAG: '2019-11-21-01'
FEDORA_VERSION: '31'
FEDORA_IMAGE: "$CI_REGISTRY_IMAGE/fedora/$FEDORA_VERSION:$FEDORA_TAG"
include:
- project: 'wayland/ci-templates'
ref: master
file: '/templates/fedora.yml'
build-container:
extends: .fedora@container-ifnot-exists
stage: container
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
FEDORA_RPMS: >-
alsa-lib-devel
bluez-libs-devel
dbus-devel
doxygen
findutils
gcc
git
glib-devel
graphviz
gstreamer1-devel
gstreamer1-plugins-base-devel
jack-audio-connection-kit-devel
libv4l-devel
libva-devel
libX11-devel
make
meson
pulseaudio-libs-devel
sbc-devel
SDL2-devel
systemd-devel
vulkan-loader-devel
which
xmltoman
build:
stage: build
image: $FEDORA_IMAGE
script:
- ./autogen.sh -Ddocs=true -Daudiomixer=true -Daudiotestsrc=true -Dtest=true -Dvideotestsrc=true -Dvolume=true
- make

View File

@ -1,33 +0,0 @@
FROM fedora:31
ARG FEDORA_VER=31
LABEL description="Fedora-based environment for building PipeWire" \
maintainer="George Kiagiadakis <george.kiagiadakis@collabora.com>"
# Install pipewire dependencies
RUN dnf -y install \
which \
gcc \
meson \
systemd-devel \
dbus-devel \
glib-devel \
gstreamer1-devel \
gstreamer1-plugins-base-devel \
jack-audio-connection-kit-devel \
pulseaudio-libs-devel \
alsa-lib-devel \
libv4l-devel \
libX11-devel \
SDL2-devel \
libva-devel \
bluez-libs-devel \
sbc-devel \
doxygen \
graphviz \
xmltoman \
vulkan-loader-devel \
git \
make \
findutils \
&& dnf clean all

View File

@ -1,30 +0,0 @@
# Continuous Integration
Our CI runs on the `gitlab.freedesktop.org` infrastructure. Steps can be found
in the top-level `gitlab-ci.yml` file.
The current build happens on an x86_64, Fedora 31 image. This should be
extended to other distrubtions and architectures over time.
## fd.o Registry
The Docker image used for the build process comes from the
`registry.freedesktop.org` container registry. Images are currently manually
generate and pushed using the top-level `Dockerfile` and the following steps.
The assumption is that you are using `podman` as a `docker` alternative. The
corresponding `docker` command should be easy to find.
```sh
$ cd <pipewire-top-level-direcory>
# Build the image
$ podman build --format=docker -t registry.freedesktop.org/pipewire/pipewire/fedora:31 .
# This is usually only needed once. You will be prompted for your fd.o
# username, and the password is a personal access token that you must generate
# in the gitlab.fd.o user settings.
$ podman login
# Upload the image
$ podman push registry.freedesktop.org/pipewire/pipewire/fedora:31
```