[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