diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2023-04-24 19:58:59 +0300 |
---|---|---|
committer | Tristan Matthews <tmatth@videolan.org> | 2023-04-26 21:18:21 +0300 |
commit | 558a3c2a3f16fd21c16e5821bd8b71898af69bb8 (patch) | |
tree | 6d2bce084948eab59736bb929b618bf3efe6fb8b /.gitlab-ci.yml | |
parent | 20c032d27c59d65b19b8ffbb2608e5282fe817eb (diff) |
ci: add arm64 CI
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 01b033fd..8f4dc4dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,18 @@ default: # Image from https://hub.docker.com/_/gcc/ based on Debian image: gcc:9 +# https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#reference-tags +.snippets: + git_prep: + # Make sure we have a recent annotated tag, otherwise meson/get-version.py + # might fail later (e.g. shallow clone without enough history) or return + # a bogus version based on a much older tag. This can happen in merge request + # pipelines from a personal fork, as the fork might not have the latest + # upstream tags if it has been forked a long time ago. Also affects the + # git version picked up by autotools and cmake, not just meson. + - git fetch https://gitlab.xiph.org/xiph/opus.git refs/tags/v1.4:refs/tags/v1.4 + - git describe + whitespace: stage: test script: @@ -16,7 +28,8 @@ autoconf: stage: build before_script: - apt-get update && - apt-get install -y zip doxygen + apt-get install -y zip doxygen git + - !reference [.snippets, git_prep] script: - ./autogen.sh - ./configure @@ -36,26 +49,36 @@ cmake: before_script: - apt-get update && apt-get install -y cmake ninja-build + - !reference [.snippets, git_prep] script: - mkdir build - cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DOPUS_BUILD_TESTING=ON -DOPUS_BUILD_PROGRAMS=ON - cmake --build build - cd build && ctest --output-on-failure -meson: +.meson: + image: 'debian:bookworm-slim' stage: build before_script: - apt-get update && - apt-get install -y python3-pip ninja-build doxygen - - export XDG_CACHE_HOME=$PWD/pip-cache - - pip3 install --user meson + apt-get install -y ninja-build doxygen meson git + - !reference [.snippets, git_prep] script: - - export PATH=$PATH:$HOME/.local/bin - mkdir builddir - - meson setup --werror -Dtests=enabled -Ddocs=enabled -Dbuildtype=release builddir + - meson setup -Dtests=enabled -Ddocs=enabled -Dbuildtype=release builddir ${MESON_EXTRA_ARGS} - meson compile -C builddir - meson test -C builddir #- meson dist --no-tests -C builddir - cache: - paths: - - 'pip-cache/*' + +meson x86_64: + extends: '.meson' + variables: + MESON_EXTRA_ARGS: '--werror' + +meson arm64: + extends: '.meson' + tags: + - 'gstreamer-arm64-linux-docker' + variables: + # arm64 build has a compiler warning still, so let's not use --werror for now + MESON_EXTRA_ARGS: '-Dwerror=false' |