99 lines
2.7 KiB
YAML
99 lines
2.7 KiB
YAML
# 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 FDO_DISTRIBUTION_PACKAGES.
|
|
# The tag is an arbitrary string that identifies the exact container
|
|
# contents.
|
|
BASE_TAG: '2020-11-27.1'
|
|
FDO_DISTRIBUTION_VERSION: '20.10'
|
|
FDO_UPSTREAM_REPO: 'pulseaudio/webrtc-audio-processing'
|
|
|
|
include:
|
|
# We pull templates from master to avoid the overhead of periodically
|
|
# scanning for changes upstream. This does means builds might occasionally
|
|
# break due to upstream changing things, so if you see unexpected build
|
|
# failures, this might be one cause.
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: 'master'
|
|
file: '/templates/ubuntu.yml'
|
|
|
|
# Common container build template
|
|
.ubuntu-container-build:
|
|
variables:
|
|
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
|
|
|
# Remember to update FDO_DISTRIBUTION_TAG when modifying this package list!
|
|
# Otherwise the changes won't have effect since an old container image will
|
|
# be used.
|
|
FDO_DISTRIBUTION_PACKAGES: >-
|
|
g++
|
|
gcc
|
|
libabsl-dev
|
|
meson
|
|
ninja-build
|
|
python3-setuptools
|
|
|
|
# Used to extend both container and build jobs
|
|
.ubuntu-x86_64:
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "x86_64-$BASE_TAG"
|
|
|
|
# Used to extend both container and build jobs
|
|
.ubuntu-aarch64:
|
|
tags:
|
|
- aarch64
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "aarch64-$BASE_TAG"
|
|
|
|
build-container-x86_64:
|
|
extends:
|
|
- .fdo.container-build@ubuntu@x86_64
|
|
- .ubuntu-container-build
|
|
- .ubuntu-x86_64
|
|
stage: container
|
|
|
|
build-container-aarch64:
|
|
extends:
|
|
- .fdo.container-build@ubuntu@aarch64
|
|
- .ubuntu-container-build
|
|
- .ubuntu-aarch64
|
|
stage: container
|
|
|
|
# Common build template
|
|
.build:
|
|
stage: build
|
|
extends:
|
|
- .fdo.distribution-image@ubuntu
|
|
script:
|
|
- meson build
|
|
- cd build
|
|
- ninja
|
|
artifacts:
|
|
paths:
|
|
- build/
|
|
|
|
build-x86_64:
|
|
extends:
|
|
- .build
|
|
- .ubuntu-x86_64
|
|
|
|
build-aarch64:
|
|
extends:
|
|
- .build
|
|
- .ubuntu-aarch64
|