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
	
	 Arun Raghavan
						Arun Raghavan