ci: Move extra packages from gst-plugins-rs CI images here

No need to have two layers of CI images for these few additional
packages. It only complicates the whole setup.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1298>
This commit is contained in:
Sebastian Dröge 2023-07-19 09:33:33 +03:00
parent 2abf75122d
commit a53069208b
4 changed files with 32 additions and 76 deletions

View file

@ -134,25 +134,27 @@ trigger:
stage: container-base stage: container-base
variables: variables:
FDO_DISTRIBUTION_PACKAGES: >- FDO_DISTRIBUTION_PACKAGES: >-
build-essential curl python3-setuptools liborc-0.4-dev libglib2.0-dev build-essential curl python3-setuptools libglib2.0-dev libxml2-dev
libxml2-dev libdrm-dev libegl1-mesa-dev libgl1-mesa-dev libgbm-dev libdrm-dev libegl1-mesa-dev libgl1-mesa-dev libgbm-dev libgles2-mesa-dev
libgles2-mesa-dev libgl1-mesa-dri libegl-dev libgl1-mesa-glx libgl1-mesa-dri libegl-dev libgl1-mesa-glx libwayland-egl1-mesa xz-utils
libwayland-egl1-mesa xz-utils libssl-dev git wget ca-certificates libssl-dev git wget ca-certificates ninja-build python3-pip flex bison
ninja-build python3-pip flex bison libglib2.0-dev libx11-dev libglib2.0-dev libx11-dev libx11-xcb-dev libsoup2.4-dev libvorbis-dev
libx11-xcb-dev libsoup2.4-dev libvorbis-dev libogg-dev libtheora-dev libogg-dev libtheora-dev libmatroska-dev libvpx-dev libopus-dev
libmatroska-dev libvpx-dev libopus-dev libgraphene-1.0-dev libjpeg-dev libgraphene-1.0-dev libjpeg-dev libwayland-dev wayland-protocols
libwayland-dev wayland-protocols python3-gi libavcodec-dev python3-gi libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev
libavformat-dev libavutil-dev libavfilter-dev libswscale-dev yasm libswscale-dev yasm libx264-dev libfontconfig-dev libfreetype-dev
libx264-dev libfontconfig-dev libfreetype-dev libxkbcommon-dev libxi-dev libxkbcommon-dev libxi-dev libxcb-render0-dev libxcb-shm0-dev
libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxext-dev libxcb1-dev libxext-dev libxrender-dev libxrandr-dev libxcursor-dev
libxrender-dev libxrandr-dev libxcursor-dev libxdamage-dev libxfixes-dev libxdamage-dev libxfixes-dev libxinerama-dev libgudev-1.0-dev
libxinerama-dev libgudev-1.0-dev libpango1.0-dev libcairo2-dev libpango1.0-dev libcairo2-dev libjson-glib-dev libgdk-pixbuf-2.0-dev
libjson-glib-dev libgdk-pixbuf-2.0-dev libtiff-dev libpng-dev libtiff-dev libpng-dev libjpeg-dev libepoxy-dev libsass-dev sassc
libjpeg-dev libepoxy-dev libsass-dev libcsound64-dev llvm clang nasm libsodium-dev libwebp-dev
FDO_DISTRIBUTION_EXEC: >- FDO_DISTRIBUTION_EXEC: >-
bash ci/install-gst.sh && bash ci/install-gst.sh &&
bash ci/install-gtk4.sh && bash ci/install-gtk4.sh &&
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates bash ci/install-dav1d.sh &&
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates &&
pip3 install --break-system-packages tomli
.build-final-image: .build-final-image:
extends: extends:
@ -212,66 +214,6 @@ update-nightly:
- .debian:12-nightly - .debian:12-nightly
- .dist-debian-container - .dist-debian-container
# GST_PLUGINS_RS_TOKEN is a variable of type 'Var' defined in gstreamer-rs CI
# settings and containing a gst-plugins-rs pipeline trigger token
.plugins-update:
stage: deploy
script:
- |
# FDO_DISTRIBUTION_IMAGE still has indirections
- echo $FDO_DISTRIBUTION_IMAGE
- DISTRO_IMAGE=$(eval echo ${FDO_DISTRIBUTION_IMAGE})
- echo $DISTRO_IMAGE
# retrieve the infos from the registry
- JSON_IMAGE=$(skopeo inspect docker://$DISTRO_IMAGE)
- IMAGE_PIPELINE_ID=$(echo $JSON_IMAGE | jq -r '.Labels["fdo.pipeline_id"]')
- echo $IMAGE_PIPELINE_ID
- echo $CI_PIPELINE_ID
- |
if [[ x"$IMAGE_PIPELINE_ID" == x"$CI_PIPELINE_ID" ]]; then
echo "Image has been updated, notify gst-plugins-rs"
curl -X POST -F "token=$GST_PLUGINS_RS_TOKEN" -F "ref=main" -F "variables[UPDATE_IMG]=$UPDATE_IMG" https://gitlab.freedesktop.org/api/v4/projects/1400/trigger/pipeline
else
echo "Image has not been updated, ignore"
fi
rules:
- if: '$CI_COMMIT_REF_NAME == "main" && $CI_PROJECT_PATH == "gstreamer/gstreamer-rs"'
# Those jobs need to use another image as ours doesn't have 'skopeo'
# and it's not easily installable in Debian stable for now.
plugins-update-stable:
extends:
- .plugins-update
- .img-stable
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
needs:
- job: 'build-stable'
artifacts: false
variables:
UPDATE_IMG: "stable"
plugins-update-msrv:
extends:
- .plugins-update
- .img-msrv
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
needs:
- job: 'build-msrv'
artifacts: false
variables:
UPDATE_IMG: "msrv"
plugins-update-nightly:
extends:
- .plugins-update
- .img-nightly
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
needs:
- job: 'build-nightly'
artifacts: false
variables:
UPDATE_IMG: "nightly"
.cargo_test_var: &cargo_test .cargo_test_var: &cargo_test
- ./ci/run-cargo-test.sh - ./ci/run-cargo-test.sh

11
ci/install-dav1d.sh Normal file
View file

@ -0,0 +1,11 @@
set -e
RELEASE=1.1.0
git clone https://code.videolan.org/videolan/dav1d.git --branch $RELEASE
cd dav1d
meson build -D prefix=/usr/local
ninja -C build
ninja -C build install
cd ..
rm -rf dav1d

View file

@ -35,6 +35,8 @@ if [ "$RUST_IMAGE_FULL" = "1" ]; then
cargo install --force grcov cargo install --force grcov
fi fi
cargo install cargo-c --version 0.9.21+cargo-0.71
if [ "$RUST_VERSION" = "nightly" ]; then if [ "$RUST_VERSION" = "nightly" ]; then
rustup component add rustfmt --toolchain nightly rustup component add rustfmt --toolchain nightly

View file

@ -23,3 +23,4 @@ RUN C:\install_dav1d.ps1
RUN Invoke-WebRequest -Uri https://win.rustup.rs/x86_64 -OutFile C:\rustup-init.exe RUN Invoke-WebRequest -Uri https://win.rustup.rs/x86_64 -OutFile C:\rustup-init.exe
RUN C:\rustup-init.exe -y --profile minimal --default-toolchain $env:RUST_VERSION RUN C:\rustup-init.exe -y --profile minimal --default-toolchain $env:RUST_VERSION
RUN cargo install cargo-c --version 0.9.21+cargo-0.71