mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
gitlab: Make container updates automatic
This commit is contained in:
parent
6f48bc9508
commit
c48f36fcb3
3 changed files with 89 additions and 67 deletions
|
|
@ -1,7 +1,87 @@
|
||||||
image: registry.freedesktop.org/pulseaudio/pulseaudio/ubuntu:18.04
|
# The build has two stages. The 'container' stage is used to build a Docker
|
||||||
|
# container and push it to the project's container registry on fd.o GitLab.
|
||||||
|
# This step is only run when the tag for the container changes, else it is
|
||||||
|
# effectively a no-op. All of this infrastructure is inherited from the
|
||||||
|
# wayland/ci-templates repository which is the recommended way to set up CI
|
||||||
|
# infrastructure on fd.o GitLab.
|
||||||
|
#
|
||||||
|
# Once the container stage is done, we move on to the 'build' stage where we
|
||||||
|
# run an autotools and meson build in parallel. Currently, tests are also run
|
||||||
|
# as part of the build stage as there doesn't seem to be significant value to
|
||||||
|
# splitting the stages at the moment.
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- container
|
||||||
|
- build
|
||||||
|
|
||||||
|
variables:
|
||||||
|
# Update this tag when you want to trigger a rebuild the container in which
|
||||||
|
# CI runs
|
||||||
|
UBUNTU_TAG: '2019-11-21-01'
|
||||||
|
UBUNTU_VERSION: '18.04'
|
||||||
|
UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu/$UBUNTU_VERSION:$UBUNTU_TAG"
|
||||||
|
|
||||||
|
include:
|
||||||
|
- project: 'wayland/ci-templates'
|
||||||
|
ref: master
|
||||||
|
file: '/templates/ubuntu.yml'
|
||||||
|
|
||||||
|
build-container:
|
||||||
|
extends: .ubuntu@container-ifnot-exists
|
||||||
|
stage: container
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
||||||
|
UBUNTU_DEBS: >-
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
autopoint
|
||||||
|
bash-completion
|
||||||
|
check
|
||||||
|
curl
|
||||||
|
dbus-x11
|
||||||
|
g++
|
||||||
|
gcc
|
||||||
|
gettext
|
||||||
|
git-core
|
||||||
|
libasound2-dev
|
||||||
|
libasyncns-dev
|
||||||
|
libavahi-client-dev
|
||||||
|
libbluetooth-dev
|
||||||
|
libcap-dev
|
||||||
|
libfftw3-dev
|
||||||
|
libglib2.0-dev
|
||||||
|
libgtk-3-dev
|
||||||
|
libice-dev
|
||||||
|
libjack-dev
|
||||||
|
liblircclient-dev
|
||||||
|
libltdl-dev
|
||||||
|
liborc-0.4-dev
|
||||||
|
libsbc-dev
|
||||||
|
libsndfile1-dev
|
||||||
|
libsoxr-dev
|
||||||
|
libspeexdsp-dev
|
||||||
|
libssl-dev
|
||||||
|
libsystemd-dev
|
||||||
|
libtdb-dev
|
||||||
|
libtool
|
||||||
|
libudev-dev
|
||||||
|
libwebrtc-audio-processing-dev
|
||||||
|
libwrap0-dev
|
||||||
|
libx11-xcb-dev
|
||||||
|
libxcb1-dev
|
||||||
|
libxml-parser-perl
|
||||||
|
libxml2-utils
|
||||||
|
libxtst-dev
|
||||||
|
make
|
||||||
|
ninja-build
|
||||||
|
pkg-config
|
||||||
|
python3-setuptools
|
||||||
|
systemd
|
||||||
|
wget
|
||||||
|
|
||||||
build-autotools:
|
build-autotools:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: $UBUNTU_IMAGE
|
||||||
script:
|
script:
|
||||||
- export MAKEFLAGS="-j$(nproc)"
|
- export MAKEFLAGS="-j$(nproc)"
|
||||||
- NOCONFIGURE=1 ./bootstrap.sh
|
- NOCONFIGURE=1 ./bootstrap.sh
|
||||||
|
|
@ -19,7 +99,15 @@ build-autotools:
|
||||||
|
|
||||||
build-meson:
|
build-meson:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: $UBUNTU_IMAGE
|
||||||
script:
|
script:
|
||||||
|
# Install meson
|
||||||
|
- wget -q https://github.com/mesonbuild/meson/releases/download/0.50.0/meson-0.50.0.tar.gz
|
||||||
|
- tar -xf meson-0.50.0.tar.gz
|
||||||
|
- cd meson-0.50.0
|
||||||
|
- python3 setup.py install
|
||||||
|
- cd ..
|
||||||
|
# Do the actual build
|
||||||
- meson build
|
- meson build
|
||||||
- cd build
|
- cd build
|
||||||
- ninja
|
- ninja
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ EXTRA_DIST = \
|
||||||
README \
|
README \
|
||||||
CODE_OF_CONDUCT.md \
|
CODE_OF_CONDUCT.md \
|
||||||
scripts/benchmark_memory_usage.sh \
|
scripts/benchmark_memory_usage.sh \
|
||||||
scripts/Dockerfile \
|
|
||||||
scripts/plot_memory_usage.gp \
|
scripts/plot_memory_usage.gp \
|
||||||
scripts/benchmarks/README \
|
scripts/benchmarks/README \
|
||||||
todo \
|
todo \
|
||||||
|
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
# Start with current Ubuntu LTS
|
|
||||||
FROM ubuntu:18.04
|
|
||||||
|
|
||||||
# Add a PulseAudio's dependencies
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash-completion \
|
|
||||||
check \
|
|
||||||
dbus-x11 \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
gettext \
|
|
||||||
git-core \
|
|
||||||
libasound2-dev \
|
|
||||||
libasyncns-dev \
|
|
||||||
libavahi-client-dev \
|
|
||||||
libbluetooth-dev \
|
|
||||||
libcap-dev \
|
|
||||||
libfftw3-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libice-dev \
|
|
||||||
libjack-dev \
|
|
||||||
liblircclient-dev \
|
|
||||||
libltdl-dev \
|
|
||||||
liborc-0.4-dev \
|
|
||||||
libsbc-dev \
|
|
||||||
libsndfile1-dev \
|
|
||||||
libsoxr-dev \
|
|
||||||
libspeexdsp-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libsystemd-dev \
|
|
||||||
libtdb-dev \
|
|
||||||
libudev-dev \
|
|
||||||
libwebrtc-audio-processing-dev \
|
|
||||||
libwrap0-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxcb1-dev \
|
|
||||||
libxml-parser-perl \
|
|
||||||
libxml2-utils \
|
|
||||||
libxtst-dev \
|
|
||||||
make \
|
|
||||||
ninja-build \
|
|
||||||
python3-setuptools \
|
|
||||||
systemd
|
|
||||||
|
|
||||||
# Install meson from upstream tarball
|
|
||||||
ARG MESON_VERSION=0.50.0
|
|
||||||
RUN apt-get install -y wget && \
|
|
||||||
wget -q https://github.com/mesonbuild/meson/releases/download/${MESON_VERSION}/meson-${MESON_VERSION}.tar.gz && \
|
|
||||||
tar -xf meson-${MESON_VERSION}.tar.gz && \
|
|
||||||
cd meson-${MESON_VERSION} && \
|
|
||||||
python3 setup.py install
|
|
||||||
|
|
||||||
# Add a user and set as default for the build. This is safer, in general, and
|
|
||||||
# allows us to avoid having to explicitly allow running as root in the
|
|
||||||
# check-daemon stage.
|
|
||||||
RUN groupadd -g 1000 a_group && \
|
|
||||||
useradd a_user -u 1000 -g a_group -m
|
|
||||||
USER a_user:a_group
|
|
||||||
|
|
||||||
# And make sure subsequent commands are run in the user's home directory
|
|
||||||
WORKDIR /home/a_user
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue