[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] 2 commits: gitlab: Make container updates automatic
Arun Raghavan
gitlab at gitlab.freedesktop.org
Sat Dec 21 05:20:00 UTC 2019
Arun Raghavan pushed to branch master at PulseAudio / pulseaudio
Commits:
c48f36fc by Arun Raghavan at 2019-12-21T05:15:31Z
gitlab: Make container updates automatic
- - - - -
1f5da4c2 by Tanu Kaskinen at 2019-12-21T05:15:31Z
gitlab: explain the container image tag better
- - - - -
3 changed files:
- .gitlab-ci.yml
- Makefile.am
- − scripts/Dockerfile
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,7 +1,91 @@
-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, for example when adding new packages to UBUNTU_DEBS. The tag is
+ # an arbitrary string that identifies the exact container contents.
+ 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 at container-ifnot-exists
+ stage: container
+ variables:
+ GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
+
+ # Remember to update UBUNTU_TAG when modifying this package list! Otherwise
+ # the changes won't have effect since an old container image will be used.
+ 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:
stage: build
+ image: $UBUNTU_IMAGE
script:
- export MAKEFLAGS="-j$(nproc)"
- NOCONFIGURE=1 ./bootstrap.sh
@@ -19,7 +103,15 @@ build-autotools:
build-meson:
stage: build
+ image: $UBUNTU_IMAGE
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
- cd build
- ninja
=====================================
Makefile.am
=====================================
@@ -32,7 +32,6 @@ EXTRA_DIST = \
README \
CODE_OF_CONDUCT.md \
scripts/benchmark_memory_usage.sh \
- scripts/Dockerfile \
scripts/plot_memory_usage.gp \
scripts/benchmarks/README \
todo \
=====================================
scripts/Dockerfile deleted
=====================================
@@ -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
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/6f48bc9508802eea6f9b08f4f27785811e4dd52c...1f5da4c20b306e725a84e4681e3836f84a9167ed
--
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/6f48bc9508802eea6f9b08f4f27785811e4dd52c...1f5da4c20b306e725a84e4681e3836f84a9167ed
You're receiving this email because of your account on gitlab.freedesktop.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-commits/attachments/20191221/8e64fbad/attachment-0001.htm>
More information about the pulseaudio-commits
mailing list