mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-10-15 12:22:47 +00:00
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:
parent
3f89911f1d
commit
8f1b840979
|
@ -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:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: $FEDORA_IMAGE
|
||||||
script:
|
script:
|
||||||
- ./autogen.sh -Ddocs=true -Daudiomixer=true -Daudiotestsrc=true -Dtest=true -Dvideotestsrc=true -Dvolume=true
|
- ./autogen.sh -Ddocs=true -Daudiomixer=true -Daudiotestsrc=true -Dtest=true -Dvideotestsrc=true -Dvolume=true
|
||||||
- make
|
- make
|
||||||
|
|
33
Dockerfile
33
Dockerfile
|
@ -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
|
|
30
doc/ci.md
30
doc/ci.md
|
@ -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
|
|
||||||
```
|
|
Loading…
Reference in a new issue